컴퓨터 뺄셈의 원리; 음수의 표현 - 부호화크기 (sign-magnitude)
음수의 표현; (1) 부호화 크기 (sign-magnitude)
수학에서는 숫자 앞에 '-' 기호를 붙여준다.
컴퓨터는 음수를 어떻게 표현할까?
컴퓨터 안에서는 모든 표현이 '0'과 '1'로만 이루어진다.
가장 간단한 음수 표현 방법을 먼저 알아보자.
어떤 정수가 음수라는 것을 나타내기 위해
바이너리 숫자의 첫 비트를 ‘1’로 표시하고 그 나머지로 크기를 나타내도록 한다.
양수인 경우에는 바이너리 숫자의 첫 비트를 ‘0’으로 표시한다.
예를 들면 -3은, 3에 ‘-’부호를 붙이면 되므로,
(4비트를 사용하면) ‘0011’의 첫 비트를 ‘1’로 바꾸면 ‘1011’이 된다.
이와 같은 음수 표현방식을 부호화크기(sign-magnitude)라 한다.
명칭에서 알 수 있듯이 부호가 먼저 나오고 숫자의 크기가 따라 붙는다.
4비트 바이너리 수를 부호화크기로 나타내면 아래와 같다.
4비트 이진수 (부호화크기) | 십진수 | 설명 |
0000 | 0 | 첫 비트가 ‘0’이고(+) 크기가 0이다 |
0001 | 1 | 첫 비트가 ‘0’이고(+) 크기가 1이다 |
0010 | 2 | 첫 비트가 ‘0’이고(+) 크기가 2이다 |
0011 | 3 | 첫 비트가 ‘0’이고(+) 크기가 3이다 |
0100 | 4 | 첫 비트가 ‘0’이고(+) 크기가 4이다 |
0101 | 5 | 첫 비트가 ‘0’이고(+) 크기가 5이다 |
0110 | 6 | 첫 비트가 ‘0’이고(+) 크기가 6이다 |
0111 | 7 | 첫 비트가 ‘0’이고(+) 크기가 7이다 |
1000 | -0 | 첫 비트가 ‘1’이고(-) 크기가 0이다 |
1001 | -1 | 첫 비트가 ‘1’이고(-) 크기가 1이다 |
1010 | -2 | 첫 비트가 ‘1’이고(-) 크기가 2이다 |
1011 | -3 | 첫 비트가 ‘1’이고(-) 크기가 3이다 |
1100 | -4 | 첫 비트가 ‘1’이고(-) 크기가 4이다 |
1101 | -5 | 첫 비트가 ‘1’이고(-) 크기가 5이다 |
1110 | -6 | 첫 비트가 ‘1’이고(-) 크기가 6이다 |
1111 | -7 | 첫 비트가 ‘1’이고(-) 크기가 7이다 |
[Q] 부호화크기 표현은 십진수로 0이 몇 개인가? +0과 -0의 두 가지이다 (0000, 1000).
하나의 값을 두 개의 다른 형태로 표현 한다는 것은 바람직한 현상이 아니다.
부호화크기의 표현 방식은 이러한 단점을 갖고 있다.
【예제】아래는 부호화크기 방식의 이진수이다. 각각을 십진수로 나타내시오.
① 0110 ② 10100011
[풀이]
① 0110 ; 0110 = +
= 4+2 = 6
② 10100011 ; 첫 비트가 ‘1’이므로 이 숫자는 음수이다.
그 크기는 0100011 = +
+
= 32+2+1 = 35. 따라서 정답은 ‒35.
【예제】아래의 십진수를 8비트 부호화크기 방식의 이진수로 나타내시오.
① 17 ② ‒120
[풀이]
① 17 = 16+1 = +
이고 양수이므로 첫 비트가 0이다.
따라서 17 = 00010001이다.
② ‒120 ; 음수이므로 첫 비트가 1이다. 나머지 비트들은
120 = 64+32+16+8 = +
+
+
= 0111100이다.
따라서 -120 = 10111100.
이제 부호화크기 방식으로 표현된 음수의 덧셈을 생각해 보자.
위의 예에서, 7-2 = 7+(-2)이므로, 0111+1010 = 10001
부호화크기를 사용하므로 10001은 십진수로 -1이다.
이는 오답인데 왜 그러할까?
덧셈하는 과정에서 1 올라가는 수와 부호를 더한 것이 오류이다.
첫비트가 ‘1’이면 음수를 나타내는 부호이며 크기는 갖고 있지 않다.
따라서 부호와 숫자를 더하는 오류가 발생하였다.
이러한 문제점을 해결할 수 없을까?
♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠
【연습문제】아래는 부호화크기 방식의 이진수이다. 각각을 십진수로 나타내시오.
① 10000110 ② 00100001
【연습문제】아래의 십진수를 8비트 부호화크기 방식의 이진수로 나타내시오.
① 111 ② ‒30
【연습문제】부호화 크기 방식의 단점을 열거하시오.
♣