CS/컴퓨터 구조

컴퓨터에서 음수 표현하기(1의 보수, 2의 보수)

겜도리도리 2023. 1. 13. 23:04
반응형

개요

컴퓨터에서 음수를 표현하는 방법에 대해 서술한다.

 

본문

컴퓨터에서는 숫자를 이진법으로 표기한다.

음수를 표현하려면 다음과 같은 방법들을 쓸 수 있다.

(bit 수는 4bit로 가정한다.)

 

1. sign bit 추가

제일 앞 비트를 sign bit로 사용해 0이면 양수, 1이면 음수로 취급하는 방법이다.

예를 들어 0001을 1이라고 하면 1001은 -1이 된다.

 

sing bit에는 문제점이 있다.

1 - 1은 1 + (-1)로 볼 수도 있는데, 위의 예시에서 1 + (-1)은 1010으로 0이 나오지 않고 -2가 나온다.

이를 해결하기 위해 고안된 방법이 1의 보수이다.

 

2. 1의 보수

특정 수에 더해서 모든 bit가 1이 되게 만드는 수를 특정 수의 1의 보수라고 한다.

1의 보수는 0을 1로, 1을 0으로 바꿔주면 구할 수 있고, 1의 보수를 취하면 절댓값이 같고 부호가 다른 수를 구할 수 있다.

0001을 1이라고 하면 1을 0으로, 0을 1로 바꾼 1110이 -1이다.

보수끼리는 항상 더하면 1111(즉, 0)이 된다.

 

3. 2의 보수

1의 보수에는 0이 총 두개 존재하는 문제점이 존재한다.(양의 0은 0000, 음의 0은 1111)

따라서 이를 해결 하기 위해 2의 보수가 고안되었다.

2의 보수는 1의 보수에 1을 더한 수이다.

2의 보수에는 0이 1개만 존재한다. (0000(=0)의 1의 보수는 1111이고, 여기에 다시 1을 더하면 0000이 됨)

 

예를 들어 0001 (+1)의 2의 보수는 1110에 1을 더한 1111이다.

1111의 2의 보수를 다시 구하면 0000에 1을 더한 0001이다.

위에서 +1과 -1에 각각 2의 보수를 취하면 상대방이 됨을 알 수 있고, 또한 보수를 더하면 0000이 나오는 것도 알 수 있다.

반응형