IEEE 754

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

IEEE 754, neboli Standard IEEE pro dvojkovou aritmetiku v pohyblivé řádové čárce (někdy též nesprávně v plovoucí desetiné čárce), je nejrozšířenější standard pro výpočty v pohyblivé řádové čárce, který používá mnoho mikroprocesorů a jednotek FPU. Standard definuje formáty pro reprezentaci čísel v pohyblivé desetinné čárce včetně záporné nuly, denormalizovaných čísel a zvláštních hodnot (kladné a záporné nekonečno, a „nečíslo“ - NaN).

IEEE 754 definuje čtyři formáty čísla pro: jednoduchou přesnost (single, 32 bitů), dvojnásobnou přesnost (double, 64 bitů), základní-rozšířenou přesnost (≥ 43-bitů, běžně se nepoužívá) a dvojitou-rozšířenou přesnost (≥ 79-bitů, obvykle se implementuje na 80 bitů). Pro implementaci standardu je vyžadována pouze základní přesnost, ostatní jsou volitelné.

Obsah

[editovat] Jednoduchá přesnost (single precision)

Číslo v pohyblivé řádové čárce zabírá v přesnosti „single“ právě 32 bitů. Přitom je jeden bit vyhražen pro určení znaménka, 8 bitů pro zakódování exponentu a 23 bitů pro zakódování mantisy.

bit 31 30 29 … 24 23 22 21 … 3 2 1 0
význam s (znaménko) e (exponent) m (mantisa)

podrobněji rozepsáno:

bit 31 30 29 24 23 22 21 ... 3 2 1 0
význam s e7 e6 e1 e0 m1 m2 ... m20 m21 m22 m23

Pro reprezentovanou hodnotu "X" platí.

 X = (-1)s × 2E-127 × (1 + Q)

kde:

 E = 27 × e7 + 26 × e6 + ... + 21 × e1 + e0
 Q = m1 × 2-1 + m2 × 2-2 + ... + m22 × 2-22 + m23 × 2-23

Můžeme si povšimnout, že místo aby mantisa obsahovala bit m0, tak se k ní vždy přičítá jednička. Tento "skrytý bit" umožňuje efektivnější kódování a porovnávání. Díky absenci m0 je vyloučena možnost zakódovat stejné číslo mnoha různými způsoby. Současně bychom se tím však zbavili možnosti zakódovat číslo nula. Proto výše uvedený základní vzorec platí pouze když je E v mezích 1 až 254, hodnoty E=0 a E=255 jsou použity pro vyjádření speciálních případů, kdy nelze výsledek operace pomocí výše uvedeného vzorce zakódovat:

podmínka hodnota poznámka
E = 1 až 254 X = (-1)s × 2E-127 × (1 + Q) základní formát
E = 0, Q ≠ 0 X = (-1)s × 2-126 × Q denormalizovaná čísla
E = 0, Q = 0, s = 0 X = 0 kladná nula
E = 0, Q = 0, s = 1 X = 0 záporná nula
E = 255, Q = 0, s = 0 X = +∞ kladné nekonečno (výsledek byl příliš vysoký)
E = 255, Q = 0, s = 1 X = -∞ záporné nekonečno (výsledek byl příliš nízký)
E = 255, Q > 0 X = NaN není číslo

[editovat] Odkazy

[editovat] Související články

[editovat] Externí odkazy

Osobní nástroje
Jmenné prostory

Varianty
Akce
Navigace
Tisk/export
Nástroje
V jiných jazycích