Osmičkový přesný formát s plovoucí desetinnou čárkou - Octuple-precision floating-point format
![]() | tento článek potřebuje další citace pro ověření.Červen 2016) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Plovoucí bod formáty |
---|
IEEE 754 |
|
jiný |
Bitové šířky počítačové architektury |
---|
Bit |
aplikace |
Binární s plovoucí desetinnou čárkou přesnost |
Desetinná plovoucí desetinná čárka přesnost |
v výpočetní, přesnost osmnáctky je binární plovoucí bod -na základě formát čísla počítače který zabírá 32 bajtů (256 bity ) v paměti počítače. Tento 256-bit oktuplová přesnost je pro aplikace vyžadující výsledky vyšší 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 IEEE 754 norma specifikuje a binary256 formát mezi výměnné formáty (nejedná se o základní formát), protože má:
- Podepsat bit: 1 bit
- Exponent šířka: 19 bitů
- Významné přesnost: 237 bitů (236 výslovně uloženo)
Formát je zapisován implicitním bitem olova s hodnotou 1, pokud exponent nemá všechny nuly. Tedy pouze 236 bitů významně se zobrazí ve formátu paměti, ale celková přesnost je 237 bitů (přibližně 71 desetinných míst: log10(2237) ≈ 71.344) .Bity jsou rozloženy takto:
Kódování komponent
Binární exponent s plovoucí desetinnou čárkou s přesností na osmičky je kódován pomocí offset binární reprezentace, s nulovým posunem 262143; také známý jako zkreslení exponentů ve standardu IEEE 754.
- Emin = −262142
- Emax = 262143
- Vychýlení exponentů = 3FFFF16 = 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 0000016 a 7FFFF16 jsou interpretovány speciálně.
Exponent | Významná nula | Významná nenulová | Rovnice |
---|---|---|---|
0000016 | 0, −0 | podnormální čísla | (-1)signbit × 2−262142 × 0.významnébity2 |
0000116, ..., 7FFFE16 | normalizovaná hodnota | (-1)signbit × 2exponentové bity2 × 1.významnébity2 | |
7FFFF16 | ±∞ | NaN (tichý, signalizační) |
Minimální přísně kladná (podnormá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í reprezentovatelná hodnota je 2262144 − 2261907 ≈ 1.6113 × 1078913.
Příklady osmičlenné přesnosti
Tyto příklady jsou uvedeny v bitech zastoupení, v hexadecimální, hodnoty s plovoucí desetinnou čárkou. 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 = +08000 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 = + infinityffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = − Nekonečno
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 (nejmenší kladné podnormální číslo)
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 (největší podnormální číslo)
0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016= 2−262142≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10−78913 (nejmenší kladné normální číslo)
7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16= 2262143 × (2 − 2−236)≈ 1.61132571748576047361957211845200501064402387454966951747637125049607182699 × 1078913 (největší normální číslo)
3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16= 1 − 2−237≈ 0,99999999999999999999999999999999999999999999999999999999999999999999959572 (největší počet méně než jeden)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016= 1 (jeden)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116= 1 + 2−236≈ 1,000000000000000000000000000000000000000000000000000000000000000000000906 (nejmenší číslo větší než jedna)
Ve výchozím nastavení 1/3 zaokrouhluje dolů jako dvojnásobná přesnost, kvůli lichému počtu bitů v mantinelu. Takže bity za bodem zaokrouhlování jsou 0101...
což je méně než 1/2 a jednotka na posledním místě.
Implementace
Osmičková přesnost je implementována zřídka, protože její použití je extrémně vzácné. Apple Inc. měl implementaci sčítání, odčítání a násobení čísel s přesností na osm a 224 bitů doplněk dvou znaménko a 32bitový exponent.[1] Lze použít obecné aritmetika s libovolnou přesností knihovny pro získání přesnosti osmičlenné (nebo vyšší), ale specializované implementace osmičlenné přesnosti mohou dosáhnout vyššího výkonu.
Hardwarová podpora
Neexistuje žádná známá hardwarová implementace osmičkové přesnosti.
Viz také
- Standard IEEE pro pohyblivou řádovou čárkou (IEEE 754)
- ISO / IEC 10967 „Jazykově nezávislá aritmetika
- Primitivní datový typ
Reference
- ^ R. Crandall; J. Papadopoulos (8. května 2002). „Octuple-precision floating point on Apple G4 (archivovaná kopie na web.archive.org)“ (PDF). Archivovány od originálu 28. července 2006.CS1 maint: unfit url (odkaz)
Další čtení
- Beebe, Nelson H. F. (2017-08-22). Příručka pro výpočet matematických funkcí - programování pomocí přenosné softwarové knihovny MathCW (1. vyd.). 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.