컴퓨터에서 음수 양수를 구별 하기위해 최상위 비트=MSB를 부호비트로 쓰는것이다.
최상위 비트가 0이면 양수, 1이면 음수로 표현 한다.
0001은 1, 1001은 -1
여기엔 문제가 있다.
2진수의 계산이 힘들어 진다는 것이다.
1001 + 0001 = 1010
(-1) (1) (0 이어야 함)
의미상으로 는 0000이나와야 하나 실제는 다르게 나온다
이 것을 해결하기 위해 나온것이 1의 보수이다.
1의 보수란, 음수 표현시에 0을 1로, 1을 0으로 바꿔주는 것
1의 보수로 표현하자면,
0001은 1, 1110은 -1이 된다.
계산을 다시 해보면
1110 + 0001 = 1111
(-1) (1) (0이어야 함)
계산 해보면 0000이 아닌 1111이 나왔다.
이렇게 나오는 이유는 1의 보수가 1111,0000의 두가지 의 영을 갖기 때문이다.(이것이 1의 보수의 문제점)
1101 + 0001 = 1110
(-2) (1) (-1)
계산이 맞다.
1의 보수의 문제점을 해결 하기 위해 나온것이 2의 보수이다.
2의 보수란 0을 1로, 1을 0으로 모두 바꿔준후에 1을 더하는 방법이다.
0001은 1, 1111은 -1이된다.
다시 계산해 보면
1111 + 0001 = 10000
(-1) (1) (0이어야 함)
의 결과 가 나오는데 이 값은 맞게 된다. 최상위 비트가 1이지만 범위를 벗어났기 때문에
무시하기 때문이다. 따라서 0000 => 0이 된다.
1의 보수나 2의보수 는 감산기가 필요 없이 더하기만으로 뺄셈이 가능하다.
1의 보수는 결과에 캐리가 발생시 캐리값을 연산해주어야 한다.
그에 반해 2의 보수는 발생한 캐리를 무시 하기때문에 다른 처리를 할필요 가 없다.
쉽게 2의 보수를 표현하는 방법으로는 밑의 13을 예로 들면
오른쪽에서 왼쪽으로 가는도중 최초로 나오는 일까지 그대로 써주고 나머지는 보수를 취해주면
2의보수가된다.
<컴퓨터가 보수를 쓰는이유>
보수를 쓰는 이유는 컴퓨터가 (-)라는 개념이 없기 때문이다.
컴퓨터가 인식할 수 있는 것은 전기가 들어왔다(ON)전기가 나갔다(OFF)이것만 인식이
가능한데 음(-)이라는 개념은 컴퓨터에서 인식할수 없기 때문에 보수를 씁니다
1의 보수는 0이라는 개념이 없을때는 그냥 사용해도 좋으나
0의 개념이 들어갈 경우 1의 보수로 한다면 (+)0과 (-)0이 나오게 됩니다
분명히 0은 하나밖에 없는데 음, 양의 개념으로 나뉜다면 컴퓨터가 오작동 합니다
이를 방지하기 위해 2의 보수를 사용합니다.
2의 보수는 0의 개념이 단 하나로 지정되기 때문에 컴터가 오작동 할 이유가 없죠
그냥 쓰실때는 1의 보수도 괜찮으나
0의 개념을 쓰실경우는 2의 보수를 이용하여 사용하시는게 낫죠
결론은
음수 계산 및 기타 계산은 1의 보수 또는 2의 보수 둘 다 사용이 가능하지만
0의 개념을 하나로 통합하여 사용하기 위해서는
2의 보수를 사용하는게 좋다.
'이론 > 컴퓨터구조' 카테고리의 다른 글
2의 보수를 쓰는이유와 2의 보수 표현법 (2) | 2015.05.29 |
---|
댓글을 달아 주세요
그러쿤요
이해 잘되시죠? ㅋㅋㅋ