●보수계산법이 왜 존재해야 하는가?
컴퓨터의 뺄셈 계산을 존재한다. 모던 수의 뺄셈은 덧셈화 하여 처리한다.
예를들어 5 - 4 는 5+(-4)로 변환하여 계산 할수 있다.
●보수는 무엇인가?
보수는 양수를 음수화로 표현하기 위한 방법이다. 즉, 보충하는 수. 양수에 대한 보수가
음수입니다.
●어떻게 보수를 만드는가?
보수에서 1의 보수를 먼저 설명합니다.
1의 보수는 양의 수에서 0->1로, 1->0으로 바꿔주면 됩니다.
즉,4(D:10진수) == 0100(B:2진수) ---보수---> 1011(B)가 된다.
●덧셈,뺄셈으로 예를 들면.
7+5와 7-5, 그리고, 5-7로 나누어 생각해볼수있다.(5+7은 7+5와같으므로 생략)
1)7+5 = 12 이를 이진으로 표현하면,
0111
+) 0101
1100 => 12 별 문제 없이 계산이 됨.
2) 7-5 = 2 인데 이를 계산하면 컴퓨터에서 뺄셈은 없으므로 덧셈으로 변환을 하면,
7+(-5) = 2 인데, 5는 여기서 음수가 된다. 이를 이진화하면,
0111(7)
0101(5)---보수(음수화)---> +)1010(-5)
10001 => 이 값에서 최상위 비트 1은 버림.
그리고 자리보정을 해야 하므로 +1하면
0010 이 됨. 그러므로 2가 나옴.
3) 5-7 = -2 를 계산하면 0101(5)
+)1000(-7)
1101 => 이 값은 맨앞자리가 음수를 의미하고, 101의
음수 값은 아래 표와 같이 2가된다. 그러므로 -2가 됨.
●왜 2의 보수가 필요한가?
2의 보수가 필요한게 된것은 아래 표를 보면, 1의 보수 표현에서 0이라는 값이 두가지로
나타날수있다. 이는 심각한 오류를 야기 할수있기 때문에 다시 수정이 필요하고,
그 방법으로 +(-1)을 해준다. -1을 1111로 정의 했기 때문에 음수의 증가는 1111 +(-1)
하면, -2가 된다.이는 1111 + (1110 : -1)로 계산 식이 나며, 이는 & 연산이 된다.
2의 보수는 0의 표현에 오류를 보완하며, 자리수의 표현도 한자리 더 표현이 가능하다
는 장점이 있다.
●2의 보수 계산법으로 5-7을 하면?
0101(5) 0101(5) 0101(5)
-)0111(7)---보수 표현---> +)1000(-7)--2의보수 표현 +1--> +)1001(-7) : 아래 표참조
-------- --------
식① +1 --같은 결과---> 식②
-->식① 과 식②의 계산은 같아야 한다. 식①을 계산하면 1101이 나오고 여기서 2의 보수표현을 하지 않았으므로 +(1)을 하면 1110 나옴.
-->식②를 계산하면 1110 이 나오고, 식①과 같으며, 아래 표에서 보듯이 1110은 -2가 된다.
컴퓨터의 뺄셈 계산을 존재한다. 모던 수의 뺄셈은 덧셈화 하여 처리한다.
예를들어 5 - 4 는 5+(-4)로 변환하여 계산 할수 있다.
●보수는 무엇인가?
보수는 양수를 음수화로 표현하기 위한 방법이다. 즉, 보충하는 수. 양수에 대한 보수가
음수입니다.
●어떻게 보수를 만드는가?
보수에서 1의 보수를 먼저 설명합니다.
1의 보수는 양의 수에서 0->1로, 1->0으로 바꿔주면 됩니다.
즉,4(D:10진수) == 0100(B:2진수) ---보수---> 1011(B)가 된다.
●덧셈,뺄셈으로 예를 들면.
7+5와 7-5, 그리고, 5-7로 나누어 생각해볼수있다.(5+7은 7+5와같으므로 생략)
1)7+5 = 12 이를 이진으로 표현하면,
0111
+) 0101
1100 => 12 별 문제 없이 계산이 됨.
2) 7-5 = 2 인데 이를 계산하면 컴퓨터에서 뺄셈은 없으므로 덧셈으로 변환을 하면,
7+(-5) = 2 인데, 5는 여기서 음수가 된다. 이를 이진화하면,
0111(7)
0101(5)---보수(음수화)---> +)1010(-5)
10001 => 이 값에서 최상위 비트 1은 버림.
그리고 자리보정을 해야 하므로 +1하면
0010 이 됨. 그러므로 2가 나옴.
3) 5-7 = -2 를 계산하면 0101(5)
+)1000(-7)
1101 => 이 값은 맨앞자리가 음수를 의미하고, 101의
음수 값은 아래 표와 같이 2가된다. 그러므로 -2가 됨.
●왜 2의 보수가 필요한가?
2의 보수가 필요한게 된것은 아래 표를 보면, 1의 보수 표현에서 0이라는 값이 두가지로
나타날수있다. 이는 심각한 오류를 야기 할수있기 때문에 다시 수정이 필요하고,
그 방법으로 +(-1)을 해준다. -1을 1111로 정의 했기 때문에 음수의 증가는 1111 +(-1)
하면, -2가 된다.이는 1111 + (1110 : -1)로 계산 식이 나며, 이는 & 연산이 된다.
2의 보수는 0의 표현에 오류를 보완하며, 자리수의 표현도 한자리 더 표현이 가능하다
는 장점이 있다.
●2의 보수 계산법으로 5-7을 하면?
0101(5) 0101(5) 0101(5)
-)0111(7)---보수 표현---> +)1000(-7)--2의보수 표현 +1--> +)1001(-7) : 아래 표참조
-------- --------
식① +1 --같은 결과---> 식②
-->식① 과 식②의 계산은 같아야 한다. 식①을 계산하면 1101이 나오고 여기서 2의 보수표현을 하지 않았으므로 +(1)을 하면 1110 나옴.
-->식②를 계산하면 1110 이 나오고, 식①과 같으며, 아래 표에서 보듯이 1110은 -2가 된다.
Binary |
1의보수 |
2의보수 |
0011 |
3 |
3 |
0010 |
2 |
2 |
0001 |
1 |
1 |
0000 |
0 |
0 |
1111 |
-0 |
-1 |
1110 |
-1 |
-2 |
1101 |
-2 |
-3 |
1100 |
-3 |
-4 |
1011 |
-4 |
-5 |
1010 |
-5 |
-6 |
1001 |
-6 |
-7 |
1000 |
-7 |
-8 |