..

Search

55) 음수의 표현

55) 음수의 표현

음수의 표현


정수의 표현

컴퓨터에서 정수를 표현하는 방법은 크게 부호없는 정수와 부호있는 정수로 나누어 생각할 수 있습니다.

부호없는 정수를 표현할 때에는 단지 해당 정수 크기의 절댓값을 2진수로 변환하여 표현하면 됩니다.

하지만 문제는 부호있는 정수에서 음수를 표현하는 방법에 있습니다.


음수의 표현

컴퓨터에서 음수를 표현하는 방법은 다음과 같이 다양합니다.

 

1. 부호 비트와 절댓값 방법

2. 1의 보수법

3. 2의 보수법


부호 비트와 절댓값 방법

부호 비트와 절댓값 방법은 최상위 1비트로 부호를 표현하고, 나머지 비트로 해당 정수의 절댓값을 표현하는 방법입니다.

이 방법을 사용하면 최상위의 1비트가 부호를 표현하기 위해 사용되어 표현할 수 있는 절댓값의 범위는 절반으로 줄어듭니다.

 

그러나 음수를 표현할 수 있으므로, 총 표현할 수 있는 크기는 거의 비슷해집니다.

하지만 이 방법으로 음수를 표현하면 +0과 -0이 따로 존재하게 됩니다.


1의 보수법

1의 보수법은 해당 양수의 모든 비트를 반전하여 음수를 표현하는 방법입니다.

이 방법을 사용하면 음수를 비트 NOT 연산만으로 표현할 수 있어서 연산이 매우 간단해집니다.

 

1의 보수법을 그림으로 표현하면 다음과 같습니다.

1의 보수

 

하지만 1의 보수법은 부호 비트와 절댓값 방법과 같이 +0과 -0이 따로 존재하는 문제점을 가집니다.

1의 보수


2의 보수법

2의 보수법은 해당 양수의 모든 비트를 반전한 1의 보수에 1을 더하여 음수를 표현하는 방법입니다.

이 방법은 앞서 살펴본 방법이 모두 두 개의 0을 가지는 문제점(+0과 -0)을 해결하기 위해 고안되었습니다.

 

2의 보수법을 그림으로 표현하면 다음과 같습니다.

2의 보수

 

이 방법을 사용하면 -0은 2의 보수를 구하는 과정에서 최상위 비트를 초과한 오버플로우가 발생하여 +0이 됩니다.

따라서 2의 보수법에서는 단 하나의 0만이 존재하게 됩니다.

이 때문에 현재 대부분의 시스템에서는 모두 2의 보수법으로 음수를 표현하고 있습니다.

2의 보수


연습문제