
컴퓨터에서 값을 표현하고 연산하는 데 한계가 있음.
연산의 결과가 정확하지 않고 0을 표현하는 방법이
두 가지이기 때문.
ex) −3 −4 = −3 + (−4)
-3과 -4의 부호화-절댓값 표현은 각각 1011, 1100
두 값을 더하면 초과가 발생하여 하위의 4비트만 데이터로 읽어들임 -> 0111 (10진수로 변환시 7 but 연산결과는 -7)
− 입력이나 연산의 결과가 1워드를 넘는 경우로, 1워드가 n비트일때 n+1비트가 되는 경우
− 이때 읽히는 것은 데이터 표현의 하위 1워드임
− 연산에서 0의 두 가지 표현에 의해 연산이 복잡
− 0은 중립 원소인데 표현이 통일되지 못한다는 한계
−3 −4 = −3 + (−4) 을 연산 해보기
부호화-1의 보수표현은 각각 1100, 1011
1의 보수 표현으로 계산한 값은 결과가 맞음

0을 부호화-1의 보수로 표현: 0000(+0) , 1111(-0)
부호화-절댓값처럼 연산과정에서 0의 두 가지 표현을 고려해야 하므로 연산이 복잡해지고, 0은 중립 원소인데 표현이 통일되지 못한다는 한계가 여전히 존재.
−3 −4 = −3 + (−4) 을 연산 해보기
부호화-2의 보수가 각각 1101, 1100
− 두 값을 더하면 1의 보수표현 연산과 다르게
초과로 발생한 값은 무시
− 결과는 초과로 발생하는 1은 제외
− 결과가 1001인데 첫 번째 비트가 1이므로 음수임
− 2의 보수로 다시 변환하여 부호화-절댓값 표현으로 바꾸면 1111
− 1111 을 10진수로 변환하면 -7

0을 부호화-2의 보수로 표현하면+0 그대로0000
0은 10000으로 초과로 발생하는 첫번째 비트의 1을 무시하면 0000
+0 과 -0이 통일, 연산도 0000만 생각하므로 복잡하지 않음.
그래서 컴퓨터에서는 부호화-2의 보수 표현을 이용해 연산함.