Single (formát čísla v pohyblivé řádové čárce)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Počítačovou reprezentaci čísel v pohyblivé řádové čárce definuje standard IEEE 754. Ve speciálních případech nebo u velmi starého hardware se mohou vyskytnout i jiné formáty. Nejčastěji používanou reprezentací jsou čísla ve formátu „single“ (binary32 podle IEEE 754) a „double“ (binary 64 podle IEEE 754), tedy 32bitová a 64bitová čísla v plovoucí řádové čárce.

Formát binary32 v IEEE754

Číslo je kódované dvojkově. Přesnost je lepší než 7 desítkových číslic, exponent je zhruba ±1038. +more Současný hardware většinou podporuje denormalizovaná čísla, takže nejmenší krok čísel okolo nuly je zhruba 1. 4 × 10−45.

V počítačovém jazyce java odpovídá formátu binary32 elementární typ float.

Reprezentace

Číslo v pohyblivé řádové čárce zabírá v přesnosti „single“ právě 32 bitů. Přitom je jeden bit vyhrazen pro určení znaménka, 8 bitů pro zakódování exponentu v aditivním kódování (také kód s posunutou nulou) a 23 bitů pro zakódování mantisy.

bit3130 29 … 24 2322 21 … 3 2 1 0
význams (znaménko)e (exponent)m (mantisa)

podrobněji rozepsáno:

bit313029242322213210
významse7e6e1e0m1m2m20m21m22m23

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í. +more 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ínkahodnotapoznámka
E = 1 až 254X = (−1)s × 2E−127 × (1 + Q)základní formát
E = 0, Q ≠ 0X = (−1)s × 2−126 × Qdenormalizovaná čísla
E = 0, Q = 0, s = 0X = 0kladná nula
E = 0, Q = 0, s = 1X = 0záporná nula
E = 255, Q = 0, s = 0X = +∞kladné nekonečno (výsledek byl příliš vysoký)
E = 255, Q = 0, s = 1X = −∞záporné nekonečno (výsledek byl příliš nízký)
E = 255, Q > 0X = NaNnení číslo
Kategorie:Počítačová aritmetika Kategorie:Binární aritmetika

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top