2진수의 음수표현방식
2진수에서 음수를 표현하는 방식으로는 부호화된 절대값, 1의 보수, 2의 보수 표현 방식이 있습니다. 우리가 매일 접하는 컴퓨터는 내부적으로 2진수를 사용하고 있고, 당연히 위에서 말한것중에 1가지 방식으로 음수를 표현하게 됩니다. 최근 나오는 컴퓨터들은 전부 2의 보수 표현 방식을 사용하고 있습니다. 때문에 전산학에 나오는 2진수들은 2의 보수로 표현되었구나 라고 생각하시면 될것 같습니다.
각각의 표현방식에서의 숫자표현을 간략하게 살펴보면 다음과 같습니다
|
부호화된 절대값 |
1의 보수 |
2의 보수 |
|
000 = +0 |
000 = +0 |
000 = +0 |
|
001 = +1 |
001 = +1 |
001 = +1 |
|
010 = +2 |
010 = +2 |
010 = +2 |
|
011 = +3 |
011 = +3 |
011 = +3 |
|
100 = -0 |
100 = -3 |
100 = -4 |
|
101 = -1 |
101 = -2 |
101 = -3 |
|
110 = -2 |
110 = -1 |
110 = -2 |
|
111 = -3 |
111 = -0 |
111 = -1 |
표를 살펴보면 각 표현방식에서의 양수 표현은 전부 같음을 알 수 있으며, 표현식마다 음수와 0의 표현이 다름을 알 수 있습니다.
1. 부호화된 절대값 (Sign Magnitude)
이 표현방식은 최상의비트(MSB)를 조절함으로써 음수와 양수를 표현하는 방식입니다. 때문에 최상의비트를 다르게 함으로써 음수,양수를 표현할수 있습니다. 또한 0이 +0과 -0으로 2개 존재함을 알 수 있습니다.
2. 1의 보수 (One's Complements)
이 표현방식은 약간의 공식을 필요로 합니다. "양수에 역수를 취하면 음수가 된다" 입니다. 즉, 각각의 비트를 1->0, 0->1 로 바꿔주시면 됩니다. 이 표현 방식 또한 0이 +0과 -0으로 2개 존재함을 알 수 있습니다.
1의 보수 표현방식에서 +40과 -40의 표현은 다음과 같습니다.
00101000 (10진수 +40)
11010111 (10진수 -40)
3. 2의 보수 (Two's Complements)
이 표현방식은 1의 보수표현방식을 근간으로 하고 있습니다. "1의 보수를 취한값에 +1을 한다" 입니다.
2의 보수 표현방식에서 +40과 -40의 표현은 다음과 같습니다.
00101000 (10진수 +40)
11011000 (10진수 -40)
[과정]
- 00101000 의 1의 보수 = 11010111
- 11010111 + 1 = 11011000
전산과 학생이라면 2의 보수만을 알아두셔도 상관이 없을거라고 판단됩니다. 2의 보수외에는 써본적도 없었고, 알아야될 필요성도 느끼지 못했었네요. 시험볼때만 필요했었군요.
블로그로 퍼갈게요