본문 바로가기
기타

컴퓨터가 부호 있는 정수를 표현하는 방법

by oncerun 2020. 9. 30.
반응형

음의 정수를 함께 표현하기 위해서는 부호(+,-)가 필요하다.

 

부호 있는 정수를 표현하는 방법에는 부호화-크기(signed magnitude) 방식, 1의 보수 방식, 2의 보수 방식이 있으며,

공통적으로 최상위 1비트가 부호 비트로 사용된다는 점에서 부호 없는 정수와는 다릅니다.

 

양의 정수의 경우에는 부호 비트의 유무를 제외하면 어떠한 정수 표현 방식에서든 동일한 형태로 표현됩니다.

 

 

1. 부호화 크기 방식

 n비트로 표현되는 부호화 크기 방식에서는 최상위 1비트를 부호 비트로 사용하여, 0이면 양의 정수, 1이면 음의 정수를 나타냅니다. 나머지 (n-1) 비트로는 실제 표현하려는 수의 크기만을 2진수로 표현합니다.

즉 주어진 수를 절대값으로 바꿔 표현하기에 부호 비트를 제외하면 양의 정수든 음의 정수이든 상관없이 동일한 형태로 표현됩니다.

 

예를 들어 8비트로 124를 표현하는 경우 부호 비트(8번째 비트)는 0이 되고 나머지 7비트는 124에 해당하는 01111100으로 표현됩니다.

-124의 경우에는 음수이므로 부호 비트는 1이 되고 나머지는 절대값인 124를 표현하기 때문에 11111100이 됩니다.

 

그렇기에 n의비트로 표현할 수 있는 수의 범위는 1비트가 제외되고 -(2^n-1-1)~+(2^n-1-1)이 됩니다.

여기서 문제점은 0이다 +0과 -0이 존재하여 문제점을 가지고 있다.

 

2. 1의 보수 방식

 1의 보수 방식의 기본 아이디어는 양의 정수에 대한 보수로서 음의 정수를 표현하는 것이다.

양의 정수에 대한 표현은 부호화-크기 방식에서의 표현과 동일한 형태로 표현한다.

다만 음의 정수를 표현하기 위해서는 양의 정수에 대한 표현에서 0은 1, 1은 0으로 바꾸면 된다.

 

예를 들어 8 비로 124를 표현하면 01111100인데 -124는 10000011이라는 소리이다.

결국엔 +0(00000000) -0(11111111)에 대해서 두 가지 표현을 가지는 문제점이 존재한다.

 

3. 2의 보수 방식

 2의 보수 방식에서는 음의 정수는 우선 1의 보수 방식으로 계산하고 그 결과에 1을 더해서 표현한다.

-124인 경우 10000011이 되고 이 값에 1을 더하면 10000100이 된다.

위에 2가지 방식과 달리 오직 하나의 0이 존재하며, 범위는 -0이 없으므로 음수를 하나 더 표현할 수 있다.

-(2^n-1)~+(2^n-1-1) 범위이다.

 컴퓨터에서 정수를 표현하기 위해서 일반적으로 사용하는 방식은 2의 보수방식이다.

 

반응형

'기타' 카테고리의 다른 글

조합회로와 순차회로  (0) 2020.10.26
부동소수점 실수 표현  (0) 2020.10.11
펌 특수문자 모음  (0) 2020.10.11
진법  (0) 2020.09.30
Test Driven Development  (0) 2020.07.29

댓글