Kraklog
진법 연산 - 연산과 보수(2) 본문
728x90
디지털 컴퓨터는 모든 데이터를 0과 1로 표현하므로 , 부호(+,-)도 0과 1로 표현한다.
컴퓨터에서는 부호비트를 이용하여 양수를 0으로, 음수를 -로 표현하는데 가장 왼쪽의 최상위 비트 (MSB)에 나타낸다.
단, 2진수로 데이터를 표시 할 때는 항상 비트의 크기를 동일하게 해주어야 한다.
즉 부호 비트의 위치를 항상 동일한 곳에 두어야 하는데
예를 들어 +5와 -5를 8비트를 표현한다면 0000_0101 와 1000_0101로 나타낼 수 있다.
부호 비트를 사용하여 양수와 음수를 사용하는 방법은 세 가지 표현 방식이 있다.
- 부호의 절대치 표현
부호와 절대치 효현은 부호만 + -로 나타내고 뒷자리는 절댓값 크기를 사용한다.
사람이 보기에는 편하지만 연산에 적용하기에는 적당하지 않다.
(ex: +55 , -55는 부호를 제외하고 2진수 데이터 값은 같다) - 1의 보수 (1's complement representation)
1의 보수는 각 자릿수의 값을 0을 1로, 1을 0으로 바꾼다.
5를 예로 들면 0000_0101 이 되는데, 이를 1의 보수를 취하면 1111_1010이 된다. - ,2의 보수 (2's complement representation)
2의 보수는 1의 보수에 1을 더한다. 위의 예를 다시 들면
1의 보수인 1111_1010에 1을 더한 1111_1011이 된다.
모든 진법에는 보수가 2가지 있으며, 8진법이라면 8의 보수와 7의 보수가, 10진법이라면 10의 보수와 9의 보수가 있다.
10진수 87로 예를 들자면
87의 9의 보수는 100 - 1 - 87 = 22 이다. 또한 10의 보수는 100 - 1 -87 +1 =23이 된다.
즉, 10진수에서 9의 보수는 각 자리를 9로 만드는 값을 말하며, 10의 보수는 이 값에 +1을 한 값을 말한다.
컴퓨터 연산에서는 음수를 표현하기 위해서 보수를 사용하는데, 연산을 쉽게 하기 위함도 있으며 뺄셈 회로 없이 보수 회로만으로도 뺄셈 연산을 할 수 있을뿐더러 이외에는 음수를 표현 할 수 있는 방법이 없기 때문이다.
728x90