Computer Science/CPU

수의 표현

냉동커피 2021. 6. 21. 17:29

컴퓨터는 2진수로 모든 수를 표현하는데, CPU의 한정된 비트수로 양수부터 음수까지 모두 표현하기 위해 다양한 표현기법을 사용한다.

 

1. 음의 정수( 2의 보수 표현법 )

: CPU는 연산할 때 비트수를 정해놓고 해야하는데, 결과값이 제한을 넘어가면 그 비트를 버린다. 이런 특성을 바탕으로 최상위 비트를 부호비트로 사용하고 나머지 비트로 양의 정수를, 2의 보수로 음의 정수를 표현한다.

ex) 7 -> 0111 , -7 -> 1001 , 7+(-7) = 1 0000 -> 0

 

2. 실수

: 실수는 부동소수점(Floating Point) 방식으로 표현하는데, 이는 가수, 밑, 지수로 표현하는 방식이다. 

ex) ±1.56 x 10^-3

여기서 이진법을 사용하기 때문에 밑은 2로 고정되어 최상위 부호비트와 가수부분, 지수부분으로 구성된다.

ex) 16.128 = 10000 + 2^-3 = 10000.11

 

하지만 부동소수점으로 실수를 표현 불가능한 경우도 있는데, 예로 0.1을 바꾸어보면 무한소수가 된다.

ex) 0.1 = 2^-4 + 2^-5 + 2^-8 + 2^-9 + ... = 0.0001100110011...

 

그래서 가수부분의 끝 비트에서 반올림하는 형식으로 변환한다.

 

2-1. 규격에 따른 변환순서

 

- 부호비트 결정 : 양수(0), 음수(1)

 

- 이진수 정규화 : 1.xxxx의 형태로 시프트 연산을 하고 이동한만큼 지수에 더해준다.

 

- 바이어스(Bias) 처리 : 정규화 시에 지수가 음수가 되는 경우가 존재하기 때문에 2^(e-1)-1 만큼 더해주어 처리한다.