Osmičkový přesný formát s plovoucí desetinnou čárkou - Octuple-precision floating-point format

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ě:

Rozložení formátu s plovoucí desetinnou čárkou s přesností na osm řádků

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.

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é

Reference

Další čtení