실제 사용되고 있는 부동 소수점 방식은 대부분 IEEE 754 표준을 따른다.
단정밀도(single precision)에서는 부호 1비트, 지수부 8비트, 가수부 23비트를 사용하며, (32비트)
배정밀도(double precision)에서는 부호 1비트, 지수부 11비트, 가수부 52비트를 사용한다. (64비트)
부동소수점은 고정소수점에 비해 매주 크거나 작은 값을 표현할 수 있지만 연산 속도가 느리다.
-123.45 같은 실수를 컴퓨터에서 부동소수점(단정밀도)으로 표현하려면 다음의 과정을 거쳐야 한다.
- 이진수 변환.
- 정규화.
- 지수부 바이어스 표현법.
- 정형화
이진수 변환은 10진수->2진수 방법으로 정수부.소수부 로 표시한다.
1111011.011100110011001100... 이렇게 이진수 변환을 마쳤으면 정규화를 한다.
부동소수점의 정규화는 가수의 첫째 자리가 밑수보다 작은 한자리 자연수가 되도록 바꾸어 다음의 형태처럼 만든다.
(가수)*(밑수)^(지수)
2진법에서 밑수는 2이므로 2보다 작은 자연수는 1이다.
1.11101101110011001100110(2) * 2^6
지수부는 8비트이므로 0~255까지의 지수를 표현할 수 있지만 음수 지수를 처리하기 위해 바이어스 표현법을 사용한다.
바이어스 표현법이란 표현 가능한 영역을 반으로 나누어 동일한 음수와 양수의 개수를 맞춰주는 것이다.
위에서는 0~255까지 256개의 양수를 -127~128로 만들 수 있으며 바이어스 상수는 127(=2^(n-1)-1)이다.
지수값에 바이어스 상수를 더하여 2진수로 지수부를 표현한다.
127+6 = 133 = 10000101(2)
유효숫자 첫째자리를 제외한 소수 부분을 가수부에 표시하여 정형화 한다.
1 |
10000101 |
11101101110011001100110 |
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.