logo

IEEE 표준 754 부동 소수점 수

부동 소수점 연산에 대한 IEEE 표준(IEEE 754)은 1985년에 제정된 부동 소수점 연산에 대한 기술 표준입니다. 전기전자공학회(IEEE) . 이 표준은 다양한 부동 소수점 구현에서 발견되어 안정적으로 사용하기 어렵게 만들고 이식성을 감소시키는 많은 문제를 해결했습니다. IEEE 표준 754 부동 소수점은 오늘날 Intel 기반 PC, Mac 및 대부분의 Unix 플랫폼을 포함한 컴퓨터에서 실수를 나타내는 가장 일반적인 표현입니다.

부동 소수점 수를 표현하는 방법에는 여러 가지가 있지만 대부분의 경우 IEEE 754가 가장 효율적입니다. IEEE 754에는 3가지 기본 구성요소가 있습니다.



  1. 가수의 표시 –
    이름만큼이나 간단합니다. 0은 양수를 나타내고 1은 음수를 나타냅니다.
  2. 편향 지수 -
    지수 필드는 양수 지수와 음수 지수를 모두 나타내야 합니다. 저장된 지수를 얻기 위해 실제 지수에 바이어스가 추가됩니다.
  3. 정규화된 가수 -
    가수는 유효 숫자로 구성된 과학적 표기법 또는 부동 소수점 숫자의 일부입니다. 여기에는 O와 1이라는 2자리 숫자만 있습니다. 따라서 정규화된 가수는 소수점 왼쪽에 1이 하나만 있는 것입니다.

IEEE 754 숫자는 위의 세 가지 구성 요소에 따라 단정밀도와 배정밀도의 두 가지로 나뉩니다.




유형 징후 편향된 지수 정규화된 가수 편견
단일 정밀도 1(31번째 비트) 8(30-23) 23(22-0) 127
배정밀도 1(63번째 비트)



우르피 자베드가 누구야?
11(62-52) 52(51-0) 1023

예 -

85.125 85 = 1010101 0.125 = 001 85.125 = 1010101.001 =1.010101001 x 2^6 sign = 0 1. Single precision: biased exponent 127+6=133 133 = 10000101 Normalised mantisa = 010101001 we will add 0's to complete the 23 bits The IEEE 754 Single precision is: = 0 10000101 01010100100000000000000 This can be written in hexadecimal form 42AA4000 2. Double precision: biased exponent 1023+6=1029 1029 = 10000000101 Normalised mantisa = 010101001 we will add 0's to complete the 52 bits The IEEE 754 Double precision is: = 0 10000000101 0101010010000000000000000000000000000000000000000000 This can be written in hexadecimal form 4055480000000000>

특수 값: IEEE는 모호할 수 있는 일부 값을 예약했습니다.

  • 영 -
    0은 지수와 가수 0으로 표시되는 특수 값입니다. -0과 +0은 둘 다 동일하지만 서로 다른 값입니다.



  • 비정규화 –
    지수는 모두 0이지만 가수는 그렇지 않은 경우 값은 비정규화된 숫자입니다. 즉, 이 숫자에는 이진수 앞에 선행하는 숫자가 없다고 가정됩니다.

  • 무한 –
    +infinity 및 -infinity 값은 모두 1의 지수와 모두 0의 가수로 표시됩니다. 부호 비트는 음의 무한대와 양의 무한대를 구별합니다. 무한한 값을 갖는 연산은 IEEE에 잘 정의되어 있습니다.

  • 숫자가 아님(NAN) –
    NAN 값은 오류인 값을 나타내는 데 사용됩니다. 이는 지수 필드가 0 부호 비트 또는 1이 아닌 가수 뒤에 0이 오는 모든 1일 때 표시됩니다. 이는 아직 값을 보유하지 않은 변수를 나타내는 데 사용할 수 있는 특수 값입니다.
멱지수 가수
0 0 정확한 0
255 0

무한대
0 0이 아니다 비정규화된
255 0이 아니다

숫자가 아님(NAN)

배정밀도(255를 2049로 대체), 부동 소수점 숫자 범위와 유사합니다.

비정규화됨 정규화됨 대략적인 십진수
단일 정밀도 ±2-149(1 – 2-23)×2-126 ±2-126(2 – 2-23)×2127 ± 약 10-44.85약 10까지38.53
배정밀도 ±2-1074(1 – 2-52)×2-1022 ±2-1022(2 – 2-52)×21023 ± 약 10-323.3약 10까지308.3

양의 부동 소수점 숫자의 범위는 정규화된 숫자와 분수 정밀도의 일부만 사용하는 비정규화된 숫자로 나눌 수 있습니다. 모든 부동 소수점 숫자에는 해당하는 부정 값이 있으므로 위의 범위는 0을 기준으로 대칭입니다.

단정밀도 부동 소수점 숫자가 지금까지 제시된 방식으로 표현할 수 없는 5가지 고유한 숫자 범위가 있습니다.

차단된 번호
  1. – (2 – 2보다 작은 음수-23) × 2127(음수 오버플로)
  2. – 2보다 큰 음수-149(음의 언더플로우)
  3. 2보다 작은 양수-149(포지티브 언더플로우)
  4. (2 – 2보다 큰 양수-23) × 2127(양성 오버플로)

오버플로는 일반적으로 값이 표시할 수 없을 정도로 커졌음을 의미합니다. 언더플로는 0에 가깝게 근사되는 것이 보장되는 정밀도 손실을 나타내기 때문에 덜 심각한 문제입니다.

유한 IEEE 부동 소수점 숫자의 전체 유효 범위 표는 다음과 같습니다.

바이너리 소수
하나의 ± (2 – 2-23) × 2127 약 ± 1038.53
더블 ± (2 – 2-52) × 21023 약 ± 10308.25

특수 작전 –

작업 결과
n ¼ ±무한대 0
±무한대 × ±무한대 ±무한대
±0이 아닌 ¼ ±0 ±무한대
±유한 × ±무한 ±무한대
무한대 + 무한대
무한대 – -무한대
+무한대
-무한대 – 무한대
-무한대 + – 무한대
– 인피니티
±0 ¼ ±0 NaN
±무한대 ¼ ±무한대 NaN
±무한대 × 0 NaN
NaN == NaN 거짓