IEEE 754

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

IEEE 754전기 전자 기술자 협회(IEEE)에서 개발한 컴퓨터에서 부동소수점를 표현하는 가장 널리 쓰이는 표준이다. ±0 등의 수와 무한, NaN 등의 기호를 표시하는 법과 이러한 수에 대한 연산을 정의하고 있다. 가장 최신 버전인 IEEE 754-2008은 IEEE 754-1985와 IEEE 754-1997을 대부분 포함한다.

IEEE 754에는 32 비트 단정도(single-precision), 64 비트 배정도(double-precision), 43 비트 이상의 확장단정도(거의 쓰이지 않음), 79 비트 이상의 확장배정도(일반적으로 80비트로 구현됨)에 대한 형식을 정의하고 있다. 이중 32 비트 단정도는 반드시 구현해야 하며, 다른 형식은 선택사항이다. 많은 프로그래밍 언어에서 IEEE 표준을 따르도록 정의하고 있다. 예를 들어 C에서는 float는 단정도, double은 배정도와 대응된다.

정의[편집]

IEEE 754 부동 소수점 표기 표준은 다음과 같이 항목들을 정의한다.

  • 산술 형식: 유한한 수들(0을 포함한)과 무한대와 NaN(Not a number)값으로 구성된 2진수와 10진수의 부동 소수점 데이터 집합
  • 형식의 교환: 부동 소수점 데이터를 효율적이고 압축적으로 전환할 수도 있는 인코딩
  • 반올림 규칙: 산수와 전환의 과정에서 반올림을 할 때의 성질
  • 작동: 산수와 산술 형식의 처리 방법 형식
  • 예외 처리: 예외적인 조건의 표기 (0으로의 나누는 작업, 오버플로우 등)

IEEE 754에 이 외에도 더 복잡한 예외 처리, 추가적인 작업(삼각함수 등), 표현의 평가, 그리고 생산 가능한 결과의 성취를 위한 여러 방법이 포함되어 있다.

구조[편집]

IEEE 754의 부동 소수점 표현은 크게 세 부분으로 구성되는데, 최상위 비트는 부호를 표시하는 데 사용되며, 지수 부분(exponent)과 가수 부분(fraction/mantissa)이 있다.

General floating point ko.svg

예시[편집]

−118.625 (십진법)을 IEEE 754 (32비트 단정도)로 표현해 보자.

  • 먼저, 부호와 지수를 가수로 나누어야 한다.
  • 음수이므로, 부호부는 1이 된다.
  • 그 다음, 절댓값을 이진법으로 나타내면 1110110.101이 된다. (이진기수법을 참조)
  • 소수점을 왼쪽으로 이동시켜, 왼쪽에는 1만 남게 만든다. 예를 들면 1110110.101=1.110110101×2⁶ 과 같다. 이것을 정규화된 부동소수점 수라고 한다.
  • 가수부는 소수점의 오른쪽 부분으로, 부족한 비트 수 부분만큼 0으로 채워 23비트로 만든다. 결과는 11011010100000000000000이 된다.
  • 지수는 6이므로, Bias를 더해야 한다. 32비트 IEEE 754 형식에서는 Bias는 127이므로 6+127 = 133이 된다. 이진법으로 변환하면 10000101이 된다.


이 결과를 정리해서 표시하면 다음과 같다.


Float point example frac.svg