1. 보수에 대해
사칙연산을 하려면 정수 범위라도 음수를 표현할 수 있어야 하는데
컴퓨터 구조상 2진수의 음수 표기에 있어 보수를 이해할 필요가 있다.
보수는 각 자리의 숫자의 합이 일정한 수가 되도록 만들어 주는 수로써 1의
보수라고 하면 각 자릿수의 합이 1이 되도록 하는 수를 말하며, 10의
보수라고 하면 자릿수의 합계가 10이 되도록 하는 수로 3에
대한 10의 보수는 7, 4에 대한 10의 보수는 6, 5에 대한 10의
보수는 5가 된다. 10진법에서라면 1~10의 보수가 존재하고 2진법에서라면 1과 2의 보수가 존재한다.
2. 보수로의 변환
10진법의 경우 보수에 의한 연산을 거의 하지 않지만 10의 보수만은
암산이나 주판의 사용 시에 쓰이기도 한다. 다만, 필산 방법과
다르므로 연습이 필요하다.
2진법의 경우도 연산에 2의 보수가 필요한데 이를 위해 1의 보수부터 구한다. 1의 보수는 1
또는 0으로만 표기되므로 1의 보수라고 하면
합계가 1이 되도록 0은 1로, 1은 0으로 변환하도록 하되 변환 전의 자릿수와 동일하게 한다. 예로 10011012에 대한 1의 보수는 01100102가 되고, 010011012에 대한 1의 보수는 101100102이 된다.
이어서 2의 보수는 합이 2가 되도록
변환해야 하는데 매 자릿수마다 올림이 발생하니 바로 변환하기는 까다롭지만, 1의 보수에 1을 가산하는 것으로 쉽게 해결된다. 즉, 10011012은 01100102(1의보수) → 01100112(2의보수)로, 010011012은 101100102(1의보수) → 101100112(2의보수)로 변환된다.
변환 전 |
0 |
0 |
1 |
1 |
0 |
1 |
|
1의 보수 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
2의 보수 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
변환 전 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1의 보수 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
2의 보수 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
2의 보수가 맞는지 점검하려면 변환 전의 수와 2의 보수를 합산하여 모든 자리에서 올림이 발생하는 것을 확인한다. 즉, 각 자릿수마다의 합계는 2가 된다.
3. 음수의 취급
컴퓨터가 인식하는 0과
1을 반복적으로 사용한다고 해도 0 이상의 수인 양수밖에
표현할 수 없으므로 음수를 표현하기 위하여 가장 큰 자릿수를 부호자리로 지정하기로 한다. 이에 따라
같은 자릿수를 쓰더라도 표현할 수의 범위는 반으로 줄고 음수까지 쓸 수 있게 된다.
8개 자리의 2진수를 기준으로 쓰면 아래와 같다.
음수(2진수 8자리) |
|||
10진수 |
2진수 |
10진수 |
2진수 |
+12710 |
011111112 |
-110 |
111111112 |
+12610 |
011111102 |
-210 |
111111102 |
· |
· |
-310 |
111111012 |
· |
· |
· |
· |
· |
· |
· |
· |
+310 |
000000112 |
· |
· |
+210 |
000000102 |
-12610 |
100000102 |
+110 |
000000012 |
-12710 |
100000012 |
010 |
000000002 |
-12810 |
100000002 |
8번째 자리를 부호로 두어 0이면 양수, 1이면 음수가 된다. 그 다음 7개
자리의 경우, 양수구간에서는 기존의 방법대로 10진수를 2진수로 변환하면 일치한다. 음수구간의 경우 10진수를 2진수로 변환한 후 2의
보수로 다시 변환하면 일치한다.
예로 10진수 -12610을 2진수로 변환할 경우 8번째 자리에 1을 두고, 12610의
2진수 11111102을 00000012(1의보수) → 00000102(2의보수) 결과를 합쳐 100000102으로 일치하는 것을 알 수 있다.
이와 같이 2진수 8개 자리에 대해
양수와 음수를 함께 쓸 것을 정하면 -12810∼+12710의 구간에 대한 10진수의 변환이 가능하고, 양수만으로 쓸 것을 정하면 010∼+25510의 구간에 대한 변환이 가능하다.
4. 결론
이렇게 직접 계산하는 방법을 알아만 두고, 평소에는 컴퓨터의 계산기나 인터넷상의 변환기를 사용하도록 한다.
댓글 없음:
댓글 쓰기