IEEE 754-1985 - IEEE 754-1985 - Wikipedia
IEEE 754-1985[1] byl průmysl Standard za reprezentaci plovoucí bod čísla v počítače, oficiálně přijat v roce 1985 a nahrazen v roce 2008 IEEE 754-2008, a poté opět v roce 2019 drobnou revizí IEEE 754-2019.[2] Během 23 let se jednalo o nejpoužívanější formát pro výpočet s plovoucí desetinnou čárkou. Byl implementován v softwaru ve formě plovoucí desetinné čárky knihovny a v hardwaru v instrukce z mnoha CPU a FPU. První integrovaný obvod realizovat návrh toho, co se mělo stát IEEE 754-1985, bylo Intel 8087.
IEEE 754-1985 představuje čísla v binární, poskytující definice pro čtyři úrovně přesnosti, z nichž dvě nejčastěji používané jsou:
Úroveň | Šířka | Rozsah s plnou přesností | Přesnost[A] |
---|---|---|---|
Jedna přesnost | 32 bitů | ±1.18×10−38 až ± 3,4×1038 | Přibližně 7 desetinných míst |
Dvojitá přesnost | 64 bitů | ±2.23×10−308 až ± 1,80×10308 | Přibližně 16 desetinných míst |
Standard také definuje reprezentace pro pozitivní a negativní nekonečno „a“záporná nula ", pět výjimek pro zpracování neplatných výsledků jako dělení nulou, volané speciální hodnoty NaNs za zastupování těchto výjimek, denormální čísla reprezentovat čísla menší, než je uvedeno výše, a čtyři zaokrouhlování režimy.
Reprezentace čísel


Čísla s plovoucí desetinnou čárkou ve formátu IEEE 754 se skládají ze tří polí: a znamení bit, a předpjatý exponent a zlomek. Následující příklad ukazuje význam každého z nich.
Desetinné číslo 0,1562510 v binární podobě je 0,001012 (tj. 1/8 + 1/32). (Indexy označují číslo základna.) Analogicky k věděcký zápis, kde jsou čísla zapisována tak, aby měla jednu nenulovou číslici nalevo od desetinné čárky, přepíšeme toto číslo tak, aby mělo jeden 1 bit nalevo od „binární tečky“. Jednoduše vynásobíme příslušnou silou 2, abychom kompenzovali posunutí bitů vlevo o tři polohy:
Nyní můžeme odečíst zlomek a exponent: zlomek je 0,012 a exponent je -3.
Jak je znázorněno na obrázcích, tři pole v IEEE 754 reprezentaci tohoto čísla jsou:
- podepsat = 0, protože číslo je kladné. (1 označuje záporné.)
- předpjatý exponent = -3 + „zkreslení“. v jediná přesnost, zkreslení je 127, takže v tomto příkladu je předpjatý exponent 124; v dvojnásobná přesnost, zkreslení je 1023, takže předpjatý exponent v tomto příkladu je 1020.
- zlomek = .01000…2.
IEEE 754 přidává a zaujatost k exponentu, takže čísla lze v mnoha případech pohodlně srovnávat stejným hardwarem, který porovnává podepsané Doplněk 2 celá čísla. Při použití předpjatého exponenta vyjde menší ze dvou kladných čísel s plovoucí desetinnou čárkou „méně než“, tím větší bude následovat stejné pořadí jako pro znaménko a velikost celá čísla. Pokud mají dvě čísla s plovoucí desetinnou čárkou různá znaménka, porovnání znaménka a velikosti funguje také se zkreslenými exponenty. Pokud jsou však obě čísla s plovoucí desetinnou čárkou se zkresleným exponentem záporná, pak musí být pořadí obráceno. Pokud by byl exponent reprezentován například číslem komplementu 2, nebylo by srovnávání, které ze dvou čísel je větší, tak výhodné.
Úvodní 1 bit je vynechán, protože všechna čísla kromě nuly začínají úvodní 1; úvodní 1 je implicitní a ve skutečnosti nemusí být uložen, což dává extra přesnost pro „zdarma“.
Nula
Číslo nula je znázorněno speciálně:
- podepsat = 0 pro kladná nula, 1 pro záporná nula.
- předpjatý exponent = 0.
- zlomek = 0.
Denormalizovaná čísla
Číselné reprezentace popsané výše se nazývají normalizováno, což znamená, že implicitní úvodní binární číslice je 1. Chcete-li snížit ztrátu přesnosti, když podtečení IEEE 754 zahrnuje schopnost reprezentovat zlomky menší, než jsou možné v normalizovaném vyjádření, tím, že implicitní úvodní číslici nastaví na 0. Taková čísla se nazývají denormální. Nezahrnují tolik významné číslice jako normalizované číslo, ale umožňují postupnou ztrátu přesnosti, když je výsledek aritmetická operace není přesně nula, ale je příliš blízko nule, aby mohla být reprezentována normalizovaným číslem.
Denormální číslo je reprezentováno předpjatým exponentem všech 0 bitů, což představuje exponent −126 s jednoduchou přesností (ne −127) nebo −1022 s dvojitou přesností (ne −1023).[3] Naproti tomu nejmenší zaujatý exponent představující normální číslo je 1 (viz příklady níže).
Reprezentace nečísel
Pole předpjatého exponenta je vyplněno všemi 1 bity, které označují buď nekonečno, nebo neplatný výsledek výpočtu.
Pozitivní a negativní nekonečno
Pozitivní a negativní nekonečno jsou reprezentovány takto:
- podepsat = 0 pro kladné nekonečno, 1 pro záporné nekonečno.
- předpjatý exponent = všechny 1 bity.
- zlomek = všech 0 bitů.
NaN
Některé operace aritmetika s plovoucí desetinnou čárkou jsou neplatné, jako je převzetí druhé odmocniny záporného čísla. Akt dosažení neplatného výsledku se nazývá plovoucí desetinná čárka výjimka. Výjimečný výsledek představuje speciální kód zvaný NaN, pro „Není to číslo ". Všechny NaN v IEEE 754-1985 mají tento formát:
- podepsat = buď 0 nebo 1.
- předpjatý exponent = všechny 1 bity.
- zlomek = cokoli kromě všech 0 bitů (protože všech 0 bitů představuje nekonečno).
Rozsah a přesnost

Přesnost je definována jako minimální rozdíl mezi dvěma po sobě následujícími reprezentacemi mantisy; jedná se tedy o funkci pouze v mantisě; zatímco mezera je definována jako rozdíl mezi dvěma po sobě jdoucími čísly.[4]
Jedna přesnost
Jednoduchá přesnost čísla zabírají 32 bitů. V jediné přesnosti:
- Kladná a záporná čísla nejblíže k nule (představovaná denormalizovanou hodnotou se všemi 0 v poli exponentu a binární hodnotou 1 v poli zlomku) jsou
- ±2−23 × 2−126 ≈ ±1.40130×10−45
- Kladná a záporná normalizovaná čísla nejblíže k nule (představovaná binární hodnotou 1 v poli exponentu a 0 v poli zlomku) jsou
- ±1 × 2−126 ≈ ±1.17549×10−38
- Konečná kladná a konečná záporná čísla nejdále od nuly (představovaná hodnotou s 254 v poli exponentu a všemi 1 s v poli zlomku) jsou
- ±(2−2−23) × 2127[5] ≈ ±3.40282×1038
Některé příklady hodnot rozsahu a mezer pro dané exponenty s jedinou přesností:
Skutečný exponent (nezaujatý) | Exp (zaujatý) | Minimální | Maximum | Mezera |
---|---|---|---|---|
−1 | 126 | 0.5 | ≈ 0.999999940395 | ≈ 5,96046e-8 |
0 | 127 | 1 | ≈ 1.999999880791 | ≈ 1,19209e-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 |
Například 16 777 217 nelze kódovat jako 32bitový float, protože bude zaokrouhlen na 16 777 216. To ukazuje, proč je aritmetika s plovoucí desetinnou čárkou pro účetní software nevhodná. Všechna celá čísla v reprezentovatelném rozsahu, která jsou výkonem 2, však lze uložit do 32bitového plováku bez zaokrouhlování.
Dvojitá přesnost
Dvojitá přesnost čísla zabírají 64 bitů. Ve dvojité přesnosti:
- Kladná a záporná čísla nejblíže k nule (představovaná denormalizovanou hodnotou se všemi 0 s v poli Exp a binární hodnotou 1 v poli Fraction) jsou
- ±2−52 × 2−1022 ≈ ±4.94066×10−324
- Kladná a záporná normalizovaná čísla nejblíže k nule (představovaná binární hodnotou 1 v poli Exp a 0 v poli zlomku) jsou
- ±1 × 2−1022 ≈ ±2.22507×10−308
- Konečná kladná a konečná záporná čísla nejdále od nuly (představovaná hodnotou s 2046 v poli Exp a všemi 1 s v poli zlomku) jsou
- ±(2−2−52) × 21023[5] ≈ ±1.79769×10308
Některé příklady hodnot rozsahu a mezer pro dané exponenty s dvojitou přesností:
Skutečný exponent (nezaujatý) | Exp (zaujatý) | Minimální | Maximum | Mezera |
---|---|---|---|---|
−1 | 1022 | 0.5 | ≈ 0.999999999999999888978 | ≈ 1,11022e-16 |
0 | 1023 | 1 | ≈ 1.999999999999999777955 | ≈ 2,22045e-16 |
1 | 1024 | 2 | ≈ 3.999999999999999555911 | ≈ 4,44089e-16 |
2 | 1025 | 4 | ≈ 7.999999999999999111822 | ≈ 8,88 178e-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 |
Rozšířené formáty
Norma také doporučuje použít rozšířené formáty k provádění interních výpočtů s vyšší přesností, než je požadována pro konečný výsledek, aby se minimalizovaly chyby zaokrouhlování: norma pro tyto formáty stanoví pouze minimální přesnost a požadavky exponentu. The x87 80bitový rozšířený formát je nejčastěji implementovaný rozšířený formát, který splňuje tyto požadavky.
Příklady
Zde je několik příkladů reprezentací IEEE 754 s jednou přesností:
Typ | Podepsat | Skutečný exponent | Exp (zaujatý) | Pole exponenta | Frakční pole | Hodnota |
---|---|---|---|---|---|---|
Nula | 0 | −126 | 0 | 0000 0000 | 000 0000 0000 0000 0000 0000 | 0.0 |
Záporná nula | 1 | −126 | 0 | 0000 0000 | 000 0000 0000 0000 0000 0000 | −0.0 |
Jeden | 0 | 0 | 127 | 0111 1111 | 000 0000 0000 0000 0000 0000 | 1.0 |
Mínus jedna | 1 | 0 | 127 | 0111 1111 | 000 0000 0000 0000 0000 0000 | −1.0 |
Nejmenší denormalizované číslo | * | −126 | 0 | 0000 0000 | 000 0000 0000 0000 0000 0001 | ±2−23 × 2−126 = ±2−149 ≈ ±1.4×10−45 |
„Střední“ denormalizované číslo | * | −126 | 0 | 0000 0000 | 100 0000 0000 0000 0000 0000 | ±2−1 × 2−126 = ±2−127 ≈ ±5.88×10−39 |
Největší denormalizované číslo | * | −126 | 0 | 0000 0000 | 111 1111 1111 1111 1111 1111 | ±(1−2−23) × 2−126 ≈ ±1.18×10−38 |
Nejmenší normalizované číslo | * | −126 | 1 | 0000 0001 | 000 0000 0000 0000 0000 0000 | ±2−126 ≈ ±1.18×10−38 |
Největší normalizované číslo | * | 127 | 254 | 1111 1110 | 111 1111 1111 1111 1111 1111 | ±(2−2−23) × 2127 ≈ ±3.4×1038 |
Pozitivní nekonečno | 0 | 128 | 255 | 1111 1111 | 000 0000 0000 0000 0000 0000 | +∞ |
Negativní nekonečno | 1 | 128 | 255 | 1111 1111 | 000 0000 0000 0000 0000 0000 | −∞ |
Není to číslo | * | 128 | 255 | 1111 1111 | nenulová | NaN |
* Sign bit může být buď 0 nebo 1. |
Porovnání čísel s plovoucí desetinnou čárkou
Každá možná bitová kombinace je buď NaN, nebo číslo s jedinečnou hodnotou v afinně rozšířený systém reálných čísel s přidruženým řádem, s výjimkou dvou kombinací bitů pro zápornou nulu a kladnou nulu, které někdy vyžadují zvláštní pozornost (viz níže). The binární reprezentace má speciální vlastnost, že kromě NaN lze libovolná dvě čísla porovnat jako znaménko a velikost celá čísla (endianismus problémy). Při porovnání jako Doplněk 2 celá čísla: Pokud se bity znaménka liší, záporné číslo předchází kladnému číslu, takže doplněk 2 dává správný výsledek (kromě toho, že záporná nula a kladná nula by měly být považovány za stejné). Pokud jsou obě hodnoty kladné, srovnání komplementu 2 opět dává správný výsledek. Jinak (dvě záporná čísla) je správné pořadí FP opakem pořadí doplňku 2.
Chyby zaokrouhlování vlastní výpočtům s plovoucí desetinnou čárkou mohou omezit použití srovnání pro kontrolu přesné rovnosti výsledků. Výběr přijatelného rozsahu je složité téma. Běžnou technikou je použití srovnávací hodnoty epsilon k provedení přibližného srovnání.[6] V závislosti na tom, jak mírná jsou srovnání, zahrnují běžné hodnoty 1e-6
nebo 1e-5
pro jednoduchou přesnost a 1e-14
pro dvojitou přesnost.[7][8] Další běžnou technikou je ULP, který kontroluje, jaký je rozdíl na posledním místě číslic, a účinně kontroluje, o kolik kroků jsou obě hodnoty.[9]
Ačkoli záporná nula a kladná nula jsou obecně považovány za rovnocenné pro účely srovnání, některé programovací jazyk relační operátoři a podobné konstrukty s nimi zacházejí jako s odlišnými. Podle Jáva Specifikace jazyka,[10] operátoři porovnání a rovnosti s nimi zacházejí jako s rovnými, ale Math.min ()
a Math.max ()
rozlišit je (oficiálně počínaje verzí Java 1.1, ale ve skutečnosti verzí 1.1.1), stejně jako metody porovnání rovná se()
, porovnat s()
a dokonce porovnat ()
tříd Plovák
a Dvojnásobek
.
Zaokrouhlování čísel s plovoucí desetinnou čárkou
Standard IEEE má čtyři různé režimy zaokrouhlování; první je výchozí; ostatní jsou voláni řízené zaoblení.
- Zaokrouhlené na nejbližší - zaokrouhlí na nejbližší hodnotu; pokud číslo spadne do poloviny, zaokrouhlí se na nejbližší hodnotu sudým (nulovým) nejméně významným bitem, což znamená, že se zaokrouhlí 50% času (v IEEE 754-2008 tento režim se nazývá RoundTiesToEven k odlišení od jiného režimu zaokrouhlování na nejbližší)
- Zaokrouhlit na 0 - směrované zaokrouhlování směrem k nule
- Zaokrouhlit na + ∞ - zaokrouhlování směrem k pozitivnímu nekonečnu
- Zaokrouhlené na −∞ - zaokrouhlování směrem k negativnímu nekonečnu.
Rozšíření reálných čísel
Standard IEEE využívá (a rozšiřuje) afinně rozšířený systém reálných čísel se samostatnými pozitivními a negativními nekonečny. Během vypracování návrhu byl předložen návrh, aby standard začlenil projektivně rozšířený systém reálných čísel, s jediným nepodepsaným nekonečnem, poskytnutím programátorům možnost výběru režimu. V zájmu snížení složitosti konečného standardu byl však projektivní režim zrušen. The Intel 8087 a Intel 80287 koprocesory s pohyblivou řádovou čárkou oba tento projektivní režim podporují.[11][12][13]
Funkce a predikáty
Standardní operace
Musí být k dispozici následující funkce:
- Sčítání, odčítání, násobení, dělení
- Odmocnina
- Zbytek s plovoucí desetinnou čárkou. To není jako normální modulo provoz, může být záporná pro dvě kladná čísla. Vrátí přesnou hodnotu x– (zaokrouhleno (x / y) · y).
- Zaokrouhlit na nejbližší celé číslo. Pro nepřímé zaokrouhlování je v polovině mezi dvěma celými čísly zvoleno sudé celé číslo.
- Porovnávací operace. Kromě zjevnějších výsledků IEEE 754 definuje, že −∞ = −∞, + ∞ = + ∞ a X ≠
NaN
pro všechny X (počítaje v toNaN
).
Doporučené funkce a predikáty
copysign (x, y)
vrátí x se znaménkem y, takabs (x)
rovná secopysign (x, 1,0)
. Toto je jedna z mála operací, která pracuje na NaN způsobem podobným aritmetice. Funkcecopysign
je ve standardu C99 nový.- −x vrací x s obráceným znaménkem. To se v některých případech liší od 0 − x, zejména když x je 0. Takže - (0) je −0, ale znaménko 0-0 závisí na režimu zaokrouhlování.
skalp (y, N)
logb (x)
konečný (x)
A predikát pro „x je konečná hodnota“, což odpovídá −InfIsnan (x)
predikát pro „x je NaN“, což odpovídá „x ≠ x“x <> y
, což se ukázalo jako jiné chování než NOT (x = y) kvůli NaN.neuspořádané (x, y)
je pravda, když „x je neuspořádáno s y“, tj. buď x nebo y je NaN.třída (x)
nextafter (x, y)
vrací další reprezentovatelnou hodnotu z x ve směru k y
Dějiny
V roce 1976 Intel zahajoval vývoj s plovoucí desetinnou čárkou koprocesor.[14][15] Intel doufal, že bude schopen prodat čip obsahující dobrou implementaci všech operací nalezených v široce se měnících matematických softwarových knihovnách.[14][16]
John Palmer, který projekt řídil, je přesvědčil, aby se pokusili vyvinout standard pro všechny své operace s plovoucí desetinnou čárkou. Kontaktoval se William Kahan z University of California, kteří pomohli zlepšit přesnost Hewlett Packard kalkulačky. Kahan navrhl, aby Intel použil plovoucí desetinnou čárku Digital Equipment Corporation (DEC) VAX. První VAX, VAX-11/780 právě vyšel na konci roku 1977 a jeho plovoucí čárka byla vysoce ceněna. Společnost Intel se však snažila prodat svůj čip na co nejširším trhu a chtěla nejlepší možnou plovoucí desetinnou čárku a Kahan pokračoval ve vytváření specifikací.[14] Kahan původně doporučil, aby základ s plovoucí desetinnou čárkou byl desítkový[17] ale hardwarový design koprocesoru byl příliš daleko na to, aby tuto změnu provedl.
Práce v rámci společnosti Intel znepokojovala ostatní dodavatele, kteří vyvinuli standardizační úsilí k zajištění „rovných podmínek“. Kahan se zúčastnil druhého zasedání pracovní skupiny pro standardy IEEE 754, které se konalo v listopadu 1977. Zde dostal povolení od společnosti Intel předložit návrh návrhu založený na standardní aritmetické části jejich návrhu pro koprocesor; měl dovoleno vysvětlit konstrukční rozhodnutí Intel a jejich základní úvahy, ale ne nic, co by se týkalo implementační architektury Intel.[14][15][16][18]
Protože 8bitový exponent nebyl dostatečně široký pro některé operace požadované pro čísla s dvojitou přesností, např. uložit produkt dvou 32bitových čísel,[19] jak Kahanův návrh, tak protinávrh DEC proto používaly 11 bitů, jako je časově testováno 60bitový formát s plovoucí desetinnou čárkou z CDC 6600 od roku 1965.[15][18][20] Kahanův návrh počítal také s nekonečnami, které jsou užitečné při řešení podmínek dělení na nulu; nečíslované hodnoty, které jsou užitečné při řešení neplatných operací; denormální čísla, které pomáhají zmírňovat problémy způsobené podtečením;[18][21][22] a lépe vyvážené zkreslení exponentu, což může pomoci zabránit přetečení a podtečení při převrácení čísla.[23][24]
Ještě předtím, než byl schválen, byl návrh normy implementován řadou výrobců.[25][26] Intel 8087, který byl oznámen v roce 1980, byl prvním čipem, který implementoval návrh standardu.

V roce 1980 Intel 8087 čip byl již vydán,[27] ale DEC zůstal proti, zejména k denormálním číslům, kvůli obavám o výkon a protože by to poskytlo DEC konkurenční výhodu ve standardizaci formátu DEC.
Argumenty skončily postupné podtečení trvala do roku 1981, kdy byl najat odborník DEC posoudit, že je na straně odpůrců. DEC nechal provést studii, aby prokázal, že postupné podtečení je špatný nápad, ale studie dospěla k opačnému závěru a DEC ustoupila. V roce 1985 byl standard ratifikován, ale de facto standardem se stal již o rok dříve, implementováno mnoha výrobci.[15][18][28]
Viz také
- IEEE 754
- Minifloat pro jednoduché příklady vlastností čísel s plovoucí desetinnou čárkou IEEE 754
- Aritmetika s pevným bodem
Poznámky
- ^ Přesnost: Přesnost počtu desetinných míst se vypočítá pomocí number_of_mantissa_bits * Log10(2). Tedy ~ 7,2 a ~ 15,9 pro jednoduchou a dvojitou přesnost.
Reference
- ^ Standard IEEE pro binární aritmetiku s plovoucí desetinnou čárkou. 1985. doi:10.1109 / IEEESTD.1985.82928. ISBN 0-7381-1165-1.
- ^ „ANSI / IEEE Std 754-2019“. 754r.ucbtest.org. Citováno 2019-08-06.
- ^ Hennessy (2009). Organizace a design počítače. Morgan Kaufmann. str.270.
- ^ Hossam A. H. Fahmy; Shlomo Waser; Michael J. Flynn, Počítačová aritmetika (PDF), archivovány z originál (PDF) dne 10. 10. 2010, vyvoláno 2011-01-02
- ^ A b William Kahan. „Přednášky o stavu IEEE 754“ (PDF). 1. října 1997 3:36 hod. Zvolit. Eng. & Computer Science University of California. Citováno 2007-04-12. Citovat deník vyžaduje
| deník =
(Pomoc) - ^ „Godot math_funcs.h“. GitHub.com.
- ^ „Godot math_defs.h“. GitHub.com.
- ^ „Godot MathfEx.cs“. GitHub.com.
- ^ „Porovnání čísel s plovoucí desetinnou čárkou, vydání 2012“. randomascii.wordpress.com.
- ^ „Specifikace jazyka Java a virtuálního stroje“. Dokumentace Java.
- ^ John R. Hauser (březen 1996). „Zpracování výjimek s plovoucí desetinnou čárkou v numerických programech“ (PDF). Transakce ACM v programovacích jazycích a systémech. 18 (2): 139–174. doi:10.1145/227699.227701. S2CID 9820157.
- ^ David Stevenson (březen 1981). „Úloha IEEE P754: Navrhovaný standard pro binární aritmetiku s plovoucí desetinnou čárkou“. Počítač IEEE. 14 (3): 51–62. doi:10.1109 / C-M.1981.220377.
- ^ William Kahan a John Palmer (1979). "Na navrhovaném standardu s plovoucí desetinnou čárkou". Newsletter SIGNUM. 14 (Speciální): 13–21. doi:10.1145/1057520.1057522. S2CID 16981715.
- ^ A b C d „Intel a s plovoucí desetinnou čárkou - aktualizace jednoho z nejúspěšnějších standardů v oboru - Technologická vize standardu s plovoucí desetinnou čárkou“ (PDF). Intel. 2016. Archivovány od originál (PDF) dne 04.03.2016. Citováno 2016-05-30. (11 stránek)
- ^ A b C d "Rozhovor se starým mužem s plovoucí desetinnou čárkou". cs.berkeley.edu. 1998-02-20. Citováno 2016-05-30.
- ^ A b Woehr, Jack, ed. (1997-11-01). „Rozhovor s Williamem Kahanem“. Dr. Dobb. drdobbs.com. Citováno 2016-05-30.
- ^ W. Kahan 2003, pers. komunikace na Mike Cowlishaw a další po setkání IEEE 754[nespolehlivý zdroj? ]
- ^ A b C d „IEEE 754: Interview with William Kahan“ (PDF). dr-chuck.com. Citováno 2016-06-02.
- ^ „IEEE vs. Microsoft Binary Format; Rounding Issues (Complete)“. Podpora společnosti Microsoft. Microsoft. 21. 11. 2006. ID článku KB35826, Q35826. Archivováno od původního dne 2020-08-28. Citováno 2010-02-24.
- ^ Thornton, James E. (1970). Written ve společnosti Advanced Design Laboratory, Control Data Corporation. Design počítače: Řídicí data 6600 (PDF) (1. vyd.). Glenview, Illinois, USA: Scott, Foresman and Company. LCCN 74-96462. Archivováno (PDF) od původního dne 2020-08-28. Citováno 2016-06-02. (1 + 13 + 181 + 2 + 2 stránky)
- ^ Kahan, William Morton. „Proč potřebujeme aritmetický standard s plovoucí desetinnou čárkou?“ (PDF). cs.berkeley.edu. Citováno 2016-06-02.
- ^ Kahan, William Morton; Darcy, Joseph D. „Jak Java s plovoucí desetinnou čárkou ublíží všem všude“ (PDF). cs.berkeley.edu. Citováno 2016-06-02.
- ^ Turner, Peter R. (2013-12-21). Numerická analýza a paralelní zpracování: Přednášky v Lancasteru…. ISBN 978-3-66239812-8. Citováno 2016-05-30.
- ^ "Názvy standardizovaných formátů s plovoucí desetinnou čárkou" (PDF). cs.berkeley.edu. Citováno 2016-06-02.
- ^ Charles Severance (20. února 1998). "Rozhovor se starým mužem s plovoucí desetinnou čárkou".
- ^ Charles Severance. "Historie formátu IEEE s plovoucí desetinnou čárkou". Souvislosti.
- ^ „Molekulární výrazy: Věda, optika a vy - Olympus MIC-D: Galerie integrovaných obvodů - Matematický koprocesor Intel 8087“. micro.magnet.su.edu. Citováno 2016-05-30.
- ^ Kahan, William Morton. „Standard IEEE 754 pro binární aritmetiku s plovoucí desetinnou čárkou“ (PDF). cs.berkeley.edu. Citováno 2016-06-02.
Další čtení
- Charles Severance (Březen 1998). „IEEE 754: Interview with William Kahan“ (PDF). Počítač IEEE. 31 (3): 114–115. doi:10.1109 / MC.1998.660194. S2CID 33291145. Archivovány od originál (PDF) dne 23. 8. 2009. Citováno 2008-04-28.
- David Goldberg (březen 1991). „Co by měl každý počítačový vědec vědět o aritmetice s plovoucí desetinnou čárkou“ (PDF). ACM Computing Surveys. 23 (1): 5–48. doi:10.1145/103162.103163. S2CID 222008826. Citováno 2008-04-28.
- Chris Hecker (únor 1996). „Pojďme k (plovoucímu) bodu“ (PDF). Časopis pro vývojáře her: 19–24. ISSN 1073-922X. Archivovány od originál (PDF) dne 02.02.2007.
- David Monniaux (květen 2008). „Úskalí ověřování výpočtů s plovoucí desetinnou čárkou“. Transakce ACM v programovacích jazycích a systémech. 30 (3): 1–41. arXiv:cs / 0701192. doi:10.1145/1353445.1353446. ISSN 0164-0925. S2CID 218578808.: Kompendium neintuitivního chování s plovoucí desetinnou čárkou na populárních architekturách s důsledky pro ověření a testování programu.