'이론/컴퓨터구조'에 해당되는 글 1건

 

컴퓨터에서 음수 양수를 구별 하기위해 최상위 비트=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
블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.

댓글을 달아 주세요