logo

Čísla s pohyblivou rádovou čiarkou podľa štandardu IEEE 754

Štandard IEEE pre aritmetiku s pohyblivou rádovou čiarkou (IEEE 754) je technický štandard pre výpočty s pohyblivou rádovou čiarkou, ktorý bol vytvorený v roku 1985 Inštitút elektrotechnických a elektronických inžinierov (IEEE) . Norma sa zaoberala mnohými problémami vyskytujúcimi sa v rôznych implementáciách s pohyblivou rádovou čiarkou, ktoré sťažovali ich spoľahlivé používanie a znižovali ich prenosnosť. Štandard IEEE 754 s pohyblivou rádovou čiarkou je dnes najbežnejším zobrazením reálnych čísel na počítačoch vrátane počítačov PC, Macov a väčšiny platforiem Unix s procesorom Intel.

Existuje niekoľko spôsobov vyjadrenia čísla s pohyblivou rádovou čiarkou, ale IEEE 754 je vo väčšine prípadov najúčinnejší. IEEE 754 má 3 základné komponenty:



  1. Znamenie mantisy -
    Toto je také jednoduché ako názov. 0 predstavuje kladné číslo, zatiaľ čo 1 predstavuje záporné číslo.
  2. Predpojatý exponent –
    Pole exponentov musí reprezentovať kladné aj záporné exponenty. K aktuálnemu exponentu sa pridá odchýlka, aby sa získal uložený exponent.
  3. Normalizovaná mantisa -
    Mantisa je súčasťou čísla vo vedeckej notácii alebo čísla s pohyblivou rádovou čiarkou, ktoré pozostáva z jeho platných číslic. Tu máme iba 2 číslice, t.j. O a 1. Takže normalizovaná mantisa je taká, ktorá má iba jednu 1 naľavo od desatinnej čiarky.

Čísla IEEE 754 sú rozdelené do dvoch na základe vyššie uvedených troch komponentov: jednoduchá presnosť a dvojitá presnosť.

Vymazať vyrovnávaciu pamäť npm




TYPY SIGN OBJEDNATÝ EXPONENT NORMALIZOVANÁ MANTISA BIAS
Jediná presnosť 1 (31. bit) 8 (30-23) 23 (22-0) 127
Dvojitá presnosť 1 (63. bit)



11(62-52) 52 (51-0) 1023

Príklad –

85.125 85 = 1010101 0.125 = 001 85.125 = 1010101.001 =1.010101001 x 2^6 sign = 0 1. Single precision: biased exponent 127+6=133 133 = 10000101 Normalised mantisa = 010101001 we will add 0's to complete the 23 bits The IEEE 754 Single precision is: = 0 10000101 01010100100000000000000 This can be written in hexadecimal form 42AA4000 2. Double precision: biased exponent 1023+6=1029 1029 = 10000000101 Normalised mantisa = 010101001 we will add 0's to complete the 52 bits The IEEE 754 Double precision is: = 0 10000000101 0101010010000000000000000000000000000000000000000000 This can be written in hexadecimal form 4055480000000000>

Špeciálne hodnoty: IEEE má vyhradené niektoré hodnoty, ktoré môžu byť nejednoznačné.

ctc úplná forma
  • nula –
    Nula je špeciálna hodnota označená exponentom a mantisou 0. -0 a +0 sú odlišné hodnoty, hoci sú obe rovnaké.



  • Denormalizované –
    Ak sú exponentom všetky nuly, ale mantisa nie, potom je hodnota denormalizované číslo. To znamená, že toto číslo nemá predpokladané prvé číslo pred binárnym bodom.

  • Nekonečno -
    Hodnoty +nekonečno a -nekonečno sú označené exponentom všetkých jednotiek a mantisou všetkých núl. Znamenkový bit rozlišuje medzi záporným nekonečnom a kladným nekonečnom. Operácie s nekonečnými hodnotami sú v IEEE dobre definované.

  • Nie je číslo (NAN) –
    Hodnota NAN sa používa na vyjadrenie hodnoty, ktorá je chybou. Toto je reprezentované, keď pole exponentu sú všetky jednotky s bitom znamienka nuly alebo mantisou, ktorá nie je 1, za ktorou nasledujú nuly. Toto je špeciálna hodnota, ktorú možno použiť na označenie premennej, ktorá ešte nemá žiadnu hodnotu.
EXPONENT MANTISA VALUE
0 0 presne 0
255 0

upcasting
Nekonečno
0 nie 0 denormalizované
255 nie 0

Nie je číslo (NAN)

Podobné pre dvojitú presnosť (len nahradenie 255 číslom 2049), rozsahy čísel s pohyblivou rádovou čiarkou:

Denormalizované Normalizované Približné desatinné číslo
Jednoduchá presnosť ±2-149až (1-2-23)×2-126 ±2-126až (2-2-23)×2127 ± približne 10-44,85do cca 1038,53
Dvojitá presnosť ±2-1074až (1-2-52)×2-1022 ±2-1022až (2-2-52)×21023 ± približne 10-323,3do cca 10308,3

Rozsah kladných čísel s pohyblivou rádovou čiarkou možno rozdeliť na normalizované čísla a denormalizované čísla, ktoré využívajú iba časť presnosti zlomkov. Keďže každé číslo s pohyblivou rádovou čiarkou má zodpovedajúcu negovanú hodnotu, vyššie uvedené rozsahy sú symetrické okolo nuly.

od abecedy k číslu

Existuje päť odlišných číselných rozsahov, ktoré čísla s jednou presnosťou s pohyblivou rádovou čiarkou nie sú schopné reprezentovať s doteraz prezentovanou schémou:

  1. Záporné čísla menšie ako – (2 – 2-23) × 2127(negatívne pretečenie)
  2. Záporné čísla väčšie ako – 2-149(záporné podtečenie)
  3. nula
  4. Kladné čísla menšie ako 2-149(kladné podtečenie)
  5. Kladné čísla väčšie ako (2 – 2-23) × 2127(pozitívne pretečenie)

Pretečenie vo všeobecnosti znamená, že hodnoty narástli príliš veľké na to, aby ich bolo možné reprezentovať. Podtečenie je menej závažný problém, pretože znamená len stratu presnosti, ktorá sa zaručene blíži nule.

Tabuľka celkového efektívneho rozsahu konečných čísel IEEE s pohyblivou rádovou čiarkou je uvedená nižšie:

Binárne Desatinné
Slobodný ± (2 – 2-23) × 2127 približne ± 1038,53
Dvojité ± (2 – 2-52) × 21023 približne ± 10308,25

Špeciálne operácie -

Prevádzka Výsledok
n ÷ ±nekonečno 0
±nekonečno × ±nekonečno ± Nekonečno
±nenulové ÷ ±0 ± Nekonečno
±nekonečno × ±nekonečno ± Nekonečno
Nekonečno + nekonečno
Nekonečno - - Nekonečno
+ Nekonečno
-Nekonečno - Nekonečno
-Nekonečno + - Nekonečno
– Nekonečno
±0 ÷ ±0 NaN
±Nekonečno ÷ ±Nekonečno NaN
±nekonečno × 0 NaN
NaN == NaN Nepravdivé