IEEE 754-1985

IEEE 754-1985

IEEE 754-1985[1] 컴퓨터에서 부동소수점 숫자를 나타내기 위한 산업 표준으로 1985년에 공식적으로 채택되어 2008년에 IEEE 754-2008로 대체되었고, 2019년에 다시 마이너 개정 IEEE 754-2019[2]대체되었다.23년 동안 부동소수점 연산에 가장 널리 사용된 형식이었다.소프트웨어, 부동소수점 라이브러리 및 하드웨어에서 많은 CPUFPU의 지시에 따라 구현되었습니다.IEEE 754-1985의 초안을 최초로 구현한 집적회로는 인텔 8087이었습니다.

IEEE 754-1985는 2진수로 숫자를 나타내며 4가지 정밀도의 정의를 제공합니다.이 중 가장 일반적으로 사용되는 것은 다음 두 가지입니다.

레벨 최대 정밀도 범위 정밀도[a]
단일 정밀도 32비트 ±1.18×10−38 ~±3.4×1038 소수점 약 7자리
2배 정밀도 64비트 ±2.23×10−308 ~±1.80×10308 약 16자리 소수점

이 표준은 또한 양수 및 음수 무한대 표현, "음수 0", 0으로 나누기 같은 무효 결과를 처리하기 위한 5가지 예외, 이러한 예외를 나타내기 위한 NaNs라고 하는 특수 값, 위에 표시된 숫자보다 작은 숫자를 나타내기 위한 데노멀 번호4개의 반올림 모드를 정의한다.

숫자의 표현

단정도 IEEE 754-1985 부동소수점 번호로 나타나는 번호 0.15625.자세한 내용은 텍스트를 참조하십시오.
64비트 IEEE 754의 3개의 필드가 플로트합니다.

IEEE 754 형식의 부동 소수점 번호는 부호 비트, 바이어스 지수 및 분수의 3개의 필드로 구성됩니다.다음 예시는 각각의 의미를 나타내고 있습니다.

이진수로 표시되는 10진수 0.15625는10 0.001012(즉, 1/8 + 1/32)입니다(첨자는 숫자 베이스를 나타냅니다).숫자가 소수점 왼쪽에 0이 아닌 단일 자릿수를 가지도록 쓰는 과학적 표기법과 유사하게, 우리는 이 숫자를 "이진점" 왼쪽에 단일 비트를 가지도록 다시 씁니다.단순히 2의 적절한 거듭제곱을 곱하면 남은 비트를 3개의 위치로 이동할 수 있습니다.

이제 분수와 지수를 읽을 수 있습니다. 분수는 0.01이고2 지수는 -3입니다.

그림에 나타나 있듯이 IEEE 754에서 이 번호를 나타내는3개의 필드는 다음과 같습니다.

숫자가 양수이므로 기호 = 0입니다. (1은 음수를 나타냅니다.)
편향 지수 = -3 + "변환"입니다.단일 정밀도에서는 치우침이 127이므로 이 예에서는 치우침 지수가 124이고 이중 정밀도에서는 치우침이 1023이므로 이 예에서는 치우침 지수가 1020입니다.
fraction = 0.01000….2

IEEE 754는 많은 경우에 부호화된 2의 보완 정수를 비교하는 동일한 하드웨어에 의해 편리하게 비교될 수 있도록 지수에 편견을 부가한다.편향된 지수를 사용하면 두 개의 양의 부동 소수점 숫자 중 작은 숫자가 부호크기 정수와 같은 순서로 "작은" 값이 됩니다.두 부동소수점 숫자의 부호가 다르면 부호-규모 비교는 편향된 지수에도 적용된다.단, 양쪽 바이어스 지수 부동소수점 숫자가 음수인 경우 순서를 반대로 해야 합니다.지수를 예를 들어 2의 보완수로 표현하면 두 숫자 중 어떤 것이 더 큰지 비교하는 것이 편리하지 않을 것입니다.

0을 제외한 모든 숫자가 선두 1로 시작되므로 선두 1비트는 생략됩니다. 선두 1은 암묵적이며 실제로 저장할 필요가 없기 때문에 "자유"에 대한 추가 비트를 제공합니다.

숫자 0은 특별히 다음과 같이 표시됩니다.

부호 = 양수 0인 경우 0, 음수 0인 경우 1입니다.
편향 지수 = 0입니다.
fraction = 0 입니다.

정규화되지 않은 수

위에서 설명한 숫자 표현을 정규화라고 합니다.즉, 암묵적으로 선행하는 바이너리 디지트가 1임을 의미합니다.언더플로우가 발생했을 때의 정밀도 손실을 줄이기 위해 IEEE 754는 암묵적인 선두자리를 0으로 함으로써 정규화된 표현에서 가능한 것보다 작은 분수를 나타내는 기능을 포함한다.그러한 숫자를 데노말이라고 합니다.정규화된 숫자만큼 유의한 숫자는 포함되지 않지만, 연산 결과가 정확히 0은 아니지만 정규화된 숫자로 표현하기에는 너무 가까울 때 점차적으로 정밀도가 손실됩니다.

데노말 수는 모든 0비트의 바이어스 지수로 표현되며, 이는 단정도에서는 -126(-127이 아님) 또는 배정도에서는 -1022(-[3]1023이 아님)의 지수를 나타낸다.반면 정규 수를 나타내는 가장 작은 치우침 지수는 1입니다(아래 예 참조).

비숫자 표시

biased-exponent 필드는 무한대 또는 잘못된 계산 결과를 나타내기 위해 모든 1비트로 채워집니다.

양의 무한대와 음의 무한대

양의 무한대와 음의 무한대는 다음과 같이 표시됩니다.

부호 = 양의 무한대는 0, 음의 무한대는 1입니다.
바이어스 지수 = 모든 1비트.
fraction = 모든 0비트.

NaN

음수의 제곱근을 구하는 등 부동 소수점 산술의 일부 연산이 잘못되었습니다.유효하지 않은 결과에 도달하는 동작을 부동소수점 예외라고 합니다.예외적인 결과는 "Not a Number" 대한 NaN이라는 특수 코드로 나타납니다.IEEE 754-1985의 모든 NaN의 형식은 다음과 같습니다.

기호 = 0 또는 1 중 하나입니다.
바이어스 지수 = 모든 1비트.
fraction = 모든 0비트를 제외한 임의의 비트(0비트 모두 무한대를 나타냄)

범위와 정밀도

고정 유효 자릿수를 사용하는 10진수 표현과 비교하여 단일(이진수 32) 및 이중(이진수 64) 숫자의 상대적 정밀도.여기서 상대적 정밀도는 ulp(x)/x로 정의된다.여기서 ulp(x)는 x의 표현에서 마지막 위치에 있는 단위, 즉 x와 다음 표현 가능한 숫자의 간격이다.

정밀도는 연속되는 두 개의 가수 표현 사이의 최소 차이로 정의됩니다. 따라서 이는 가수에서만 함수가 됩니다. 반면 간격은 연속되는 두 [4]숫자의 차이로 정의됩니다.

단일 정밀도

단정도 번호는 32비트를 차지합니다.단일 정밀도:

  • 0에 가장 가까운 양수 및 음수(지수 필드의 모든 0과 분수 필드의 2진수 값 1이 있는 탈정규화 값으로 표시됨)는 다음과 같습니다.
    ±2−23 × 2−126 † ±1.40130 × 10−45
  • 0에 가장 가까운 양수 및 음수 정규화 수(지수 필드에는 2진수 값 1, 분수 필드에는 0으로 표시됨)는 다음과 같습니다.
    ±1 × 2−126 † ±1.17549 × 10−38
  • 0에서 가장 먼 유한 양수 및 유한 음수(지수 필드의 254와 분수 필드의 모든 1이 있는 값으로 표시됨)는 다음과 같다.
    ±(2-2−23)×2µ127[5]±3.40282×1038

특정 지수에 대한 단일 정밀도의 범위 및 간격 값 예:

실제 지수(편향 없음) Exp(편향) 최소값 최대치
−1 126 0.5 ≈ 0.999999940395 © 5.96046e-8
0 127 1 ≈ 1.999999880791 § 1.1999e-7
1 128 2 ≈ 3.999999761581 § 2.38419e-7
2 129 4 ≈ 7.999999523163 § 4.76837e-7
10 137 1024 ≈ 2047.999877930 § 1.22070e-4
11 138 2048 ≈ 4095.999755859 § 2.44141e-4
23 150 8388608 16777215 1
24 151 16777216 33554430 2
127 254 © 1.70141e38 § 3.40282e38 © 2.02824e31

예를 들어 16,777,217은 16,777,216으로 반올림되므로 32비트 플로트로 인코딩할 수 없습니다.이는 부동소수점 연산이 회계 소프트웨어에 적합하지 않은 이유를 보여줍니다.그러나 2의 거듭제곱인 대표 범위 내의 모든 정수는 반올림 없이 32비트 플로트에 저장할 수 있습니다.

2배 정밀도

배정밀 번호는 64비트를 차지합니다.2배 정밀도:

  • 0에 가장 가까운 양수 및 음수(Exp 필드의 모든 0과 Fract 필드의 2진수 값 1)는 다음과 같습니다.
    ±2−52 × 2−1022 † ±4.94066 × 10−324
  • 0에 가장 가까운 양수 및 음수 정규화 수(Exp 필드에는 2진수 값 1, 분수 필드에는 0으로 표시됨)는 다음과 같습니다.
    ±1 × 2−1022 † ±2.22507 × 10−308
  • 0에서 가장 먼 유한 양수 및 유한 음수(Exp 필드의 2046과 분수 필드의 모든 1로 표시된 값으로 표시됨)는 다음과 같습니다.
    ±(2-2−52)×2µ11023[5].79769×10308

주어진 지수의 배 정밀도에 대한 일부 범위 및 간격 값 예제:

실제 지수(편향 없음) Exp(편향) 최소값 최대치
−1 1022 0.5 ≈ 0.999999999999999888978 © 1.11022e-16
0 1023 1 ≈ 1.999999999999999777955 § 2.22045e-16
1 1024 2 ≈ 3.999999999999999555911 § 4.12089e-16
2 1025 4 ≈ 7.999999999999999111822 © 8.88178e-16
10 1033 1024 ≈ 2047.999999999999772626 § 2.27374e-13
11 1034 2048 ≈ 4095.999999999999545253 § 4.54747e-13
52 1075 4503599627370496 9007199254740991 1
53 1076 9007199254740992 18014398509481982 2
1023 2046 © 8.98847e307 © 1.79769e308 © 1.99584e292

확장 포맷

또한 이 표준은 최종 결과에 필요한 것보다 더 높은 정밀도로 내부 계산을 수행하는 데 사용할 확장 형식을 권장한다. 이 규격은 이러한 형식에 대한 최소 정밀도와 지수 요건만 명시한다.x87 80비트 확장 포맷은 이러한 요건을 충족하는 가장 일반적으로 구현되는 확장 포맷입니다.

다음으로 단정도 IEEE 754 표현 예를 제시하겠습니다.

유형 서명하다 실제 지수 Exp(편향) 지수 필드 [ Fraction ]필드 가치
0 −126 0 0000 0000 000 0000 0000 0000 0000 0000 0.0
마이너스 제로 1 −126 0 0000 0000 000 0000 0000 0000 0000 0000 −0.0
하나. 0 0 127 0111 1111 000 0000 0000 0000 0000 0000 1.0
마이너스 원 1 0 127 0111 1111 000 0000 0000 0000 0000 0000 −1.0
최소 정규화 해제 * −126 0 0000 0000 000 0000 0000 0000 0000 0001 ±2−23 × 2−126 = ±2−149 ≈ ±1.4 × 10−45
'중간' 정규화 해제 번호 * −126 0 0000 0000 100 0000 0000 0000 0000 0000 ±2−1 × 2−126 = ±2−127 ≈ ±5.88 × 10−39
최대 정규화 해제 수 * −126 0 0000 0000 111 1111 1111 1111 1111 1111 ±(1-2−23)×2µ−126±1.18×10−38
최소 정규화 수 * −126 1 0000 0001 000 0000 0000 0000 0000 0000 ±2−126 µ ±1.18×10−38
최대 정규화 수 * 127 254 1111 1110 111 1111 1111 1111 1111 1111 ±(2-2−23)×2µ127±3.4×1038
양의 무한대 0 128 255 1111 1111 000 0000 0000 0000 0000 0000 +∞
음의 무한대 1 128 255 1111 1111 000 0000 0000 0000 0000 0000 −∞
숫자가 아니다 * 128 255 1111 1111 제로 이외의 NaN
* 부호 비트는 0 또는 1 중 하나입니다.

부동 소수점 수 비교

가능한 모든 비트의 조합은 NaN 또는 어피니티 확장실수시스템 내의 고유값과 관련된 번호입니다.단, 음의 0과 양의 0의 2개의 비트 조합은 특별한 주의가 필요한 경우가 있습니다(아래 참조).이진수 표현은 NaN을 제외하고 임의의 두 숫자를 부호크기 정수로 비교할 수 있는 특수 특성을 가지고 있다(내부성 문제가 적용됨).2의 보완 정수로 비교할 때: 부호 비트가 다르면 음수가 양수 앞에 있으므로, 2의 보완은 올바른 결과를 제공합니다(음수 0과 양수 0은 같은 것으로 간주되어야 합니다).두 값이 모두 양수인 경우 2의 보완 비교를 통해 다시 올바른 결과를 얻을 수 있습니다.그렇지 않으면(2개의 음수) 올바른 FP 순서는 2개의 보완 순서와 반대입니다.

부동 소수점 계산에 내재된 반올림 오차는 결과의 정확한 동일성을 확인하기 위한 비교 사용을 제한할 수 있습니다.허용 범위를 선택하는 것은 복잡한 주제입니다.일반적인 기술은 엡실론 값을 사용하여 대략적인 비교를 [6]수행하는 것입니다.비교의 관대한 정도에 따라 일반적인 값은 다음과 같습니다.1e-6또는1e-5싱글 소켓의 경우1e-142배속용입니다.[7][8]또 하나의 일반적인 기술은 ULP입니다.ULP는 꼴찌 자리수의 차이를 체크하여 2개의 값이 [9]몇 걸음 떨어져 있는지를 효과적으로 체크합니다.

음수 0과 양수 0은 일반적으로 비교 목적으로 동일한 것으로 간주되지만, 일부 프로그래밍 언어 관계 연산자와 유사한 구성에서는 이들을 구별된 것으로 취급한다.Java Language [10]Specification에 따르면 비교 연산자와 동등 연산자는 동등하게 취급하지만,Math.min()그리고.Math.max()(공식적으로는 Java 버전 1.1에서 시작하지만 실제로는 1.1.1에서 시작) 비교 방법과 같이 구별한다.equals(),compareTo()그리고 심지어compare()계급의Float그리고.Double.

부동 소수점 숫자 반올림

IEEE 표준에는 4개의 다른 반올림 모드가 있습니다.첫 번째는 디폴트이고 다른 것은 다이렉트 반올림이라고 불립니다.

  • 가장 가까운 값으로 반올림– 가장 가까운 값으로 반올림합니다.숫자가 중간에 떨어지면 짝수(0) 최하위 비트로 반올림됩니다(IEEE 754-2008에서는 이 모드를 다른 반올림 모드와 구별하기 위해 반올림합니다).
  • 0을 향해 반올림 – 0을 향해 반올림
  • +θ 방향으로 반올림의 무한대로 방향 반올림
  • 방향으로 반올림 – 음의 무한대를 향해 반올림합니다.

실수의 확장

IEEE 규격은 양수 및 음수 인피니티로 구분된 친화적인 확장 실수 시스템을 채용(및 확장)하고 있습니다.초안 작성 중에 프로그래머에게 모드 선택 옵션을 제공함으로써 단일 부호 없는 무한대를 가진 투영 확장 실수 시스템을 통합하자는 표준 제안이 있었다.그러나 최종 표준의 복잡성을 줄이기 위해 투영 모드를 삭제했습니다.인텔 8087인텔 80287의 부동소수점 공동 프로세서는 모두 이 투영 [11][12][13]모드를 지원합니다.

함수 및 술어

표준 조작

다음 기능을 제공해야 합니다.

  • 더하기, 빼기, 곱하기, 나누기
  • 제곱근
  • 부동 소수점 잔량이것은 일반적인 모듈로 연산과 다르며, 두 양의 숫자에 대해 음수가 될 수 있습니다.x –(round(x/y)·y)정확한 값을 반환합니다.
  • 가장 가까운 정수로 반올림합니다.무방향 반올림의 경우 두 정수 사이의 중간 지점에 짝수 정수가 선택됩니다.
  • 비교 조작보다 명확한 결과 외에도 IEEE 754는 -syslog = -syslog, +syslog = +syslog 및xNaN어떤 일이 있어도x(포함)NaN).

권장 함수 및 술어

  • copysign(x,y)y 기호를 사용하여 x를 반환합니다.abs(x)동등.copysign(x,1.0)이것은 NaN에서 산술과 유사한 방식으로 작동하는 몇 안 되는 연산 중 하나입니다.함수copysignC99 규격에서는 새로운 것입니다.
  • -x는 x를 반환하고 부호는 반대로 합니다.이 값은 0-x와는 다른 경우가 있습니다.특히 x가 0일 경우입니다.따라서 -(0)은 -0이지만 0-0 기호는 반올림 모드에 따라 달라집니다.
  • scalb(y, N)
  • logb(x)
  • finite(x)-Inf < x < Inf에 해당하는 "x는 유한값"의 술어
  • isnan(x)"x is a NaN"의 술어로, "x " x"와 같다.
  • x <> yNaN으로 인해 NOT(x = y)와는 다른 동작을 합니다.
  • unordered(x, y)"x is unordered with y" 즉, x 또는 y가 NaN일 때 참입니다.
  • class(x)
  • nextafter(x,y)x에서 y 방향으로 다음 표시 가능한 값을 반환합니다.

이력

1976년 인텔은 부동소수점 [14][15]코프로세서의 개발을 시작했습니다.인텔은 다양한 수학 소프트웨어 [14][16]라이브러리에서 볼 수 있는 모든 연산을 적절하게 구현한 칩을 판매할 수 있기를 희망했습니다.

이 프로젝트를 관리했던 John Palmer는 이러한 노력이 서로 다른 프로세서 간에 부동소수점 연산을 통합하는 표준으로 뒷받침되어야 한다고 생각했습니다.그는 캘리포니아 대학의 윌리엄 카한에게 연락했는데, 그는 휴렛 팩커드의 계산기의 정확성을 향상시키는데 도움을 주었다.Kahan은 인텔에 DEC(Digital Equipment Corporation)의 VAX 부동소수를 사용할 것을 제안했다.최초의 VAX인 VAX-11/780은 1977년 말에 출시되었고, 그 부동 소수점은 높이 평가되었다.그러나 칩을 가능한 한 광범위한 시장에 판매하기 위해 인텔은 가능한 한 최고의 부동 소수점을 원했고 Kahan은 사양을 [14]작성했습니다.Kahan은 처음에 부동소수점 베이스를 10진수로 할[17][unreliable source?] 것을 권장했지만 코프로세서의 하드웨어 설계는 너무 오래되어 변경할 수 없었습니다.

인텔의 작업은 다른 벤더에게 걱정을 끼쳤습니다.다른 벤더는 "평등한 경쟁의 장"을 확보하기 위해 표준화 노력을 기울였습니다.Kahan은 1977년 11월에 개최된 제2차 IEEE 754 표준 실무그룹 회의에 참석했다.그 후, 인텔로부터 코프로세서의 작업에 근거해 초안을 제출하는 허가를 받았습니다.또, 형식과 그 근거에 대해서는, 상세한 설명을 허가받았습니다만, 인텔의 실장 아키텍처에 관한 것은 설명하지 않았습니다.초안은 제롬 쿠넨과 해롤드 스톤과 공동으로 작성되었으며, 처음에는 "Kahan-Coonen-Stone 제안서" 또는 "K-C-S 형식"[14][15][16][18]으로 알려져 있었다.

예를 들어 두 개의 [19]32비트 숫자의 곱을 저장하는 등, 배정밀 숫자에 필요한 일부 연산에는 8비트 지수가 충분하지 않았기 때문에 Kahan의 제안과 DEC의 반대 제안 모두 CDC 660060비트 부동 소수점 형식과 같이 11비트를 사용했습니다.[15][18][20]Kahan의 제안 또한 division-by-zero 조건을 다루는 유용하다 무한,;제공될 때 잘못된 작전을 다루는 유용하다not-a-number 값, 어떤 문제가 underflow로 인한 완화시키는데 도움을 주denormal 숫자,;[18][21][22]고 오버 플로 및 언더 플로 wh을 피하도록 도와 줄 수 있는 더 나은 균형 지수 편견.앙 부르고그는 [23][24]숫자의 역수이다.

표준 초안은 승인되기 전부터 많은 [25][26]제조업체에 의해 시행되어 왔습니다.1980년에 발표된 인텔 8087은 초안 표준을 구현한 최초의 칩입니다.

인텔 8087 부동소수점 코프로세서

1980년에 인텔 8087 칩이 이미 [27]출시되었지만, DEC는 성능상의 우려와 DEC 포맷을 표준화할 수 있는 경쟁상의 우위성을 이유로 특히 정규 숫자에 반대했습니다.

점진적인 저류에 대한 논쟁은 1981년 DEC가 를 평가하기 위해 고용한 전문가가 반대파의 편을 들 때까지 지속되었다.DEC는 점진적인 언더플로우가 나쁜 생각이라는 것을 증명하기 위해 연구를 진행했지만, 연구는 그 반대라는 결론을 내렸고 DEC는 포기했다.1985년에 이 규격이 비준되었지만, 이미 1년 전에 많은 [15][18][28]제조업체에 의해 시행된 사실상의 표준이 되었다.

「 」를 참조해 주세요.

메모들

  1. ^ 정밀도:소수점 정밀도는 number_of_mantissa_bits * Log10(2)를 통해 계산됩니다.따라서 단정도 및 배정도 각각 ~7.2와 ~15.9입니다.

레퍼런스

  1. ^ IEEE Standard for Binary Floating-Point Arithmetic. 1985. doi:10.1109/IEEESTD.1985.82928. ISBN 0-7381-1165-1.
  2. ^ "ANSI/IEEE Std 754-2019". 754r.ucbtest.org. Retrieved 2019-08-06.
  3. ^ Hennessy (2009). Computer Organization and Design. Morgan Kaufmann. p. 270. ISBN 9780123744937.
  4. ^ Hossam A. H. Fahmy; Shlomo Waser; Michael J. Flynn, Computer Arithmetic (PDF), archived from the original (PDF) on 2010-10-08, retrieved 2011-01-02
  5. ^ a b William Kahan. "Lecture Notes on the Status of IEEE 754" (PDF). October 1, 1997 3:36 am. Elect. Eng. & Computer Science University of California. Retrieved 2007-04-12. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  6. ^ "Godot math_funcs.h". GitHub.com. 30 July 2022.
  7. ^ "Godot math_defs.h". GitHub.com. 30 July 2022.
  8. ^ "Godot MathfEx.cs". GitHub.com.
  9. ^ "Comparing Floating Point Numbers, 2012 Edition". randomascii.wordpress.com. 26 February 2012.
  10. ^ "Java Language and Virtual Machine Specifications". Java Documentation.
  11. ^ John R. Hauser (March 1996). "Handling Floating-Point Exceptions in Numeric Programs" (PDF). ACM Transactions on Programming Languages and Systems. 18 (2): 139–174. doi:10.1145/227699.227701. S2CID 9820157.
  12. ^ David Stevenson (March 1981). "IEEE Task P754: A proposed standard for binary floating-point arithmetic". IEEE Computer. 14 (3): 51–62. doi:10.1109/C-M.1981.220377. S2CID 15523399.
  13. ^ William Kahan and John Palmer (1979). "On a proposed floating-point standard". SIGNUM Newsletter. 14 (Special): 13–21. doi:10.1145/1057520.1057522. S2CID 16981715.
  14. ^ a b c d "Intel and Floating-Point - Updating One of the Industry's Most Successful Standards - The Technology Vision for the Floating-Point Standard" (PDF). Intel. 2016. Archived from the original (PDF) on 2016-03-04. Retrieved 2016-05-30. (11페이지)
  15. ^ a b c d "An Interview with the Old Man of Floating-Point". cs.berkeley.edu. 1998-02-20. Retrieved 2016-05-30.
  16. ^ a b Woehr, Jack, ed. (1997-11-01). "A Conversation with William Kahan". Dr. Dobb's. drdobbs.com. Retrieved 2016-05-30.
  17. ^ W. Kahan 2003, pers. comm.IEEE 754 회의 후 Mike Cowlishaw 등에게 전달
  18. ^ a b c d "IEEE 754: An Interview with William Kahan" (PDF). dr-chuck.com. Retrieved 2016-06-02.
  19. ^ "IEEE vs. Microsoft Binary Format; Rounding Issues (Complete)". Microsoft Support. Microsoft. 2006-11-21. Article ID KB35826, Q35826. Archived from the original on 2020-08-28. Retrieved 2010-02-24.
  20. ^ Thornton, James E. (1970). Written at Advanced Design Laboratory, Control Data Corporation. Design of a Computer: The Control Data 6600 (PDF) (1 ed.). Glenview, Illinois, USA: Scott, Foresman and Company. LCCN 74-96462. Archived (PDF) from the original on 2020-08-28. Retrieved 2016-06-02. (1+13+181+2+2페이지)
  21. ^ Kahan, William Morton. "Why do we need a floating-point arithmetic standard?" (PDF). cs.berkeley.edu. Retrieved 2016-06-02.
  22. ^ Kahan, William Morton; Darcy, Joseph D. "How Java's Floating-Point Hurts Everyone Everywhere" (PDF). cs.berkeley.edu. Retrieved 2016-06-02.
  23. ^ Turner, Peter R. (2013-12-21). Numerical Analysis and Parallel Processing: Lectures given at The Lancaster …. ISBN 978-3-66239812-8. Retrieved 2016-05-30.
  24. ^ "Names for Standardized Floating-Point Formats" (PDF). cs.berkeley.edu. Retrieved 2016-06-02.
  25. ^ Charles Severance (20 February 1998). "An Interview with the Old Man of Floating-Point".
  26. ^ Charles Severance. "History of IEEE Floating-Point Format". Connexions.
  27. ^ "Molecular Expressions: Science, Optics & You - Olympus MIC-D: Integrated Circuit Gallery - Intel 8087 Math Coprocessor". micro.magnet.fsu.edu. Retrieved 2016-05-30.
  28. ^ Kahan, William Morton. "IEEE Standard 754 for Binary Floating-Point Arithmetic" (PDF). cs.berkeley.edu. Retrieved 2016-06-02.

추가 정보

외부 링크