Osmičkový přesný formát s plovoucí desetinnou čárkou - Octuple-precision floating-point format
Formáty s plovoucí desetinnou čárkou |
---|
IEEE 754 |
jiný |
Bitové šířky počítačové architektury |
---|
Bit |
aplikace |
Binární přesnost s plovoucí desetinnou čárkou |
Přesnost s desetinnou plovoucí desetinnou čárkou |
Ve výpočtech je osmičlenná přesnost binární formát čísla počítače s plovoucí desetinnou čárkou , který v paměti počítače zabírá 32 bajtů (256 bitů ). Tato 256- bit osmidílný přesnost je určen pro aplikace, které vyžadují výsledky ve více než čtyřnásobný přesností . Tento formát se používá zřídka (pokud vůbec) a podporuje ho velmi málo prostředí.
IEEE 754 binární formát s plovoucí desetinnou čárkou s přesností na osm řádků: binary256
Ve své revizi z roku 2008 specifikuje standard IEEE 754 binární formát 256 mezi výměnnými formáty (nejedná se o základní formát), který má:
Formát je zapisován implicitním bitem olova s hodnotou 1, pokud exponent nemá všechny nuly. Proto pouze 236 bitů mantisy se zobrazí v podobě paměti, ale celková přesnost je 237 bitů (přibližně 71 desetinná místa: log 10 (2 237 ) ≈ 71.344 ). Bity jsou rozloženy následovně:
Kódování komponent
Binární exponent s plovoucí desetinnou čárkou s přesností na osmičky je kódován pomocí offsetové binární reprezentace, přičemž nulový offset je 262143; také známý jako zkreslení exponentů ve standardu IEEE 754.
- E min = -262142
- E max = 262143
- Vychýlení exponentu = 3FFFF 16 = 262143
Jak je definováno binární reprezentací ofsetu, aby se získal skutečný exponent, musí se odečíst offset 262143 od uloženého exponenta.
Uložené exponenty 00000 16 a 7FFFF 16 jsou interpretovány speciálně.
Exponent | Významná nula | Významná nenulová | Rovnice |
---|---|---|---|
00000 16 | 0 , −0 | podnormální čísla | (-1) signbit × 2 −262142 × 0. signifikantní bity 2 |
00001 16 , ..., 7FFFE 16 | normalizovaná hodnota | (-1) signbit × 2 exponentové bity 2 × 1. signifikantní bity 2 | |
7FFFF 16 | ± ∞ | NaN (tichý, signalizační) |
Minimální přísně kladná (subnormální) hodnota je 2 −262378 ≈ 10 −78984 a má přesnost pouze jednoho bitu. Minimální kladná normální hodnota je 2 −262142 ≈ 2,4824 × 10 −78913 . Maximální zobrazitelná hodnota je 2 262144 - 2 261907 ≈ 1,6113 × 10 78913 .
Příklady osmičlenné přesnosti
Tyto příklady jsou uvedeny v bitové reprezentaci hodnoty s plovoucí desetinnou čárkou v šestnáctkové soustavě . To zahrnuje znaménko, (zkreslený) exponent a význam.
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = +0 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = −0
7fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = +infinity ffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = −infinity
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116 = 2−262142 × 2−236 = 2−262378 ≈ 2.24800708647703657297018614776265182597360918266100276294348974547709294462 × 10−78984 (smallest positive subnormal number)
0000 0fff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16 = 2−262142 × (1 − 2−236) ≈ 2.4824279514643497882993282229138717236776877060796468692709532979137875392 × 10−78913 (largest subnormal number)
0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = 2−262142 ≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10−78913 (smallest positive normal number)
7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16 = 2262143 × (2 − 2−236) ≈ 1.61132571748576047361957211845200501064402387454966951747637125049607182699 × 1078913 (largest normal number)
3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16 = 1 − 2−237 ≈ 0.999999999999999999999999999999999999999999999999999999999999999999999995472 (largest number less than one)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = 1 (one)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116 = 1 + 2−236 ≈ 1.00000000000000000000000000000000000000000000000000000000000000000000000906 (smallest number larger than one)
Ve výchozím nastavení 1/3 zaokrouhluje dolů jako dvojnásobná přesnost kvůli lichému počtu bitů v znaménku. Bity za bodem zaokrouhlování jsou 0101...
tedy méně než 1/2 jednotky na posledním místě .
Implementace
Osmičková přesnost je implementována jen zřídka, protože její použití je extrémně vzácné. Společnost Apple Inc. implementovala sčítání, odčítání a násobení čísel s přesností na osm řádků s významem doplňku 224bitových dvou a 32bitovým exponentem. K získání přesnosti osmičlenné (nebo vyšší) lze použít obecné aritmetické knihovny s libovolnou přesností, ale vyšší výkon mohou dosáhnout specializované implementace s osmičlennou přesností.
Hardwarová podpora
Neexistuje žádná známá hardwarová implementace osmičkové přesnosti.
Viz také
- IEEE Standard for Floating-Point Arithmetic (IEEE 754)
- ISO / IEC 10967 , jazykově nezávislá aritmetika
- Primitivní datový typ
Reference
Další čtení
- Beebe, Nelson HF (2017-08-22). Příručka pro výpočet matematických funkcí - programování pomocí přenosné softwarové knihovny MathCW (1. vydání). Salt Lake City, UT, USA: Springer International Publishing AG . doi : 10,1007 / 978-3-319-64110-2 . ISBN 978-3-319-64109-6 . LCCN 2017947446 .