IEEE 754란
IEEE 754는 IEEE에서 개발한 컴퓨터에서 부동소수점을 표현하는 가장 널리 쓰이는 표준이다.
정의
IEEE 754 부동소수점 표기 기준은 다음과 같이 항목들을 정의한다.
- 산술 형식: 유한한 수들(0을 포함한)과 무한대와 NaN(Not a number)값으로 구성된 2진수와 10진수의 부동소수점 데이터 집합
- 형식의 교환: 부동소수점 데이터를 효율적이고 압축적으로 전환할 수도 있는 인코딩
- 반올림 규칙: 산수와 전환의 과정에서 반올림을 할 때의 성질
- 작동: 산수와 산술 형식의 처리 방법 형식
- 예외 처리: 예외적인 조건의 표기 (0으로의 나누는 작업, 오버플로 등)
구조
IEEE 754의 부동소수점 표현은 크게 세 부분으로 구성되는데, 최상위 비트는 부호를 표시하는 데 사용되며, 지수 부분(exponent)과 가수 부분(fraction/mantissa)이 있다.
![general_floating_point](https://velog.velcdn.com/images/82surf/post/df8b9495-44be-4d07-bf31-24afa7f22205/image.svg)
예시
−118.625(십진법)를 IEEE 754(32비트 단정밀도)로 표현해 보자.
- 음수이므로, 부호부는 1이 된다.
- 그 다음, 절댓값을 이진법으로 나타내면 1110110.101(2)이 된다.
- 소수점을 왼쪽으로 이동시켜, 왼쪽에는 1만 남게 만든다. 예를 들면 1110110.101(2)=1.110110101(2)×2⁶ 과 같다. 이것을 정규화된 부동소수점 수라고 한다.
- 가수부는 소수점의 오른쪽 부분으로, 부족한 비트 수 부분만큼 0으로 채워 23비트로 만든다. 결과는 11011010100000000000000 이 된다.
- 지수는 6이므로, Bias를 더해야 한다. 32비트 IEEE 754 형식에서는 Bias는 127이므로 6+127 = 133이 된다. 이진법으로 변환하면 10000101(2)이 된다.
이 결과를 정리해서 표시하면 다음과 같다.
![floating_point_example](https://velog.velcdn.com/images/82surf/post/ff3eac6b-97cd-4758-ba9e-79804cfa0e8b/image.svg)
References
IEEE 754 (위키백과)