|
|
이때, 값을 먼저 이진수로 변환한 후에 정규화하고, 그것을 다시 정형화된 형식으로 표현한다.
부호부: 먼저 부호는 1비트로 실수가 양수일 때는 0, 음수일 때는 1로 표현한다.
지수부: 비트열 00000000은 지수 -127을 나타내고, 01111111은 지수 0, 11111111은 지수 128을 나타낸다. 일반적으로는 지수부가 n비트일 때 (2n / 2 - 1 = 2n-1 - 1)을 지수 값에 더하며 이것을 바이어스 상수라고 한다.
가수부: 정규화 결과 유효숫자의 첫째 자리는 언제나 1이므로 표시하지 않고, 소수 부분만 표현한다.
예)
실수값 -0.4을 16비트 부동소수점으로 처리하되, 가수부는 10비트, 지수부는 5비트라고하자.
1) 먼저 값을 이진수로 변환하면 0.0110011001100110(2)이고, (= 2^-2 + 2^-3 + 2^-6 + 2^-7 + ...)
2) 정규화 결과는1.10011001100110(2)×2-2이므로,
3) 가수는1.10011001100110(2), 가수부는 소수 부분만 10비트로 나열하여 '1001100110'이 된다.
4) 지수는 -10(2)이 된다. 지수부는 5비트이므로 바이어스 상수는 25-1 - 1 = 15 이므로 지수부는 '01101'이 된다.
5) 음수값이므로 부호부는 '1'이 되고,
6) 부호-지수-가수의 순서로 조합하여 16비트 1011011001100110를 얻는다.
IEEE 부동소수점 형식

s = 부호
e = 바이어스된 지수
m = 정규화된 가수
부동 소수점 수는 s x 1.m x 2(e-127)

IEEE754 표준
이 규격에서는 실수를 32비트로 처리하는 단정밀도(single precision)에서는 부호 1비트, 지수부 8비트, 가수부 23비트를 사용하며,
64비트로 처리하는 배정밀도(double precision)에서는 부호 1비트, 지수부 11비트, 가수부 52비트를 사용한다. 4배정도(quadruple precision)에서는 128비트로 부호 1비트, 지수부 15비트, 가수부 112비트를 사용한다.
MBF(Microsoft Binary Format)
과거의 마이크로소프트 제품은 자체 규격을 사용했다. 이 형식에서는 배정밀도에서 부호 1비트, 지수 8비트, 가수 55비트를 사용하여 상대적으로 표현 범위가 좁은 대신에 유효숫자가 많으므로 보다 정밀한 값을 표현할 수 있다. 다만 실제 연산 과정에서는 IEEE 754 규격은 80비트 연산을 수행하므로, 연산 자체는 IEEE 754가 정밀하다.
참고:
https://ko.wikipedia.org/wiki/%EB%B6%80%EB%8F%99%EC%86%8C%EC%88%98%EC%A0%90
https://support.microsoft.com/ko-kr/kb/42980
http://www.gpgstudy.com/gpg2/gpg2s2-1draft.html