1. 부호가 없는 경우 : 2^n 개
2. 부호가 있는 경우 : -2^(n-1) ~ 2^(n-1)-1
2. 부호가 있는 경우 : -2^(n-1) ~ 2^(n-1)-1
2의 보수 체계에서는 가장 높은 비트(High Order Bit)를 부호 비트로 사용한다. 이 비트가 0이면 양수, 1이면 음수이다. 그래서 부호를 위해 한개의 비트를 사용하기 때문에 부호 있는 숫자는 2^(n-1)개의 수 표현을 가질 수 있는것이다.
똑같은 이진수 표현도 부호여부에 따라 해석이 달라진다. 예를들어 이진수 1000 0000 0000 0001 는 부호 없는 데이터로 해석하면 32,769가 된다. 하지만 부호 있는 데이터로 해석하면 HO 비트가 1이기 때문에 음수로 해석되고 값은 -32,767이 된다.
2의 보수 체계에서 부호를 바꾸는 방법은 아래와 같다.
1. 보든 비트를 역전 시킨다. 0은 1로, 1은 0으로..
2. 그 결과에 1을 더한다(오버플로우는 무시한다)
2. 그 결과에 1을 더한다(오버플로우는 무시한다)
위의 방법으로 -32,767의 부호를 바꿔보자..
1000 0000 0000 0001 (-32,767)
0111 1111 1111 1110 (비트 역전)
0111 1111 1111 1111 (결과에 1을 더함)
0111 1111 1111 1110 (비트 역전)
0111 1111 1111 1111 (결과에 1을 더함)
양수 표현에서는 이진수의 숫자가 커질수록 표현하는 수가 커지는 것처럼 음수에서도 마찬가지로 적용이 된다.
1000 0000 0000 0001 -> -32,767
1000 0000 0000 0010 -> -32,766
1000 0000 0000 0010 -> -32,766

comments
comments rss (+댓글 쓰러가기)