IEEE lebegőpontos számformátum

A Wikipédiából, a szabad enciklopédiából

IEEE lebegőpontos számformátum az informatikában használatos számrendszer

IEEE 754/1985 lebegőpontos számformátum[szerkesztés | forrásszöveg szerkesztése]

A lebegőpontos szám általános alakja ... ... ahol az s az előjel; m a mantissza, amely önmagában egy tetszőleges fix pontos írásmódú szám; R a számrendszer alapszáma (radixa) és e a karakterisztika, a hatványkitevő, amely önmagában egy tetszőleges fix pontos írásmódú szám.

Az IEEE (ejtsd: I triple E) 754/1985 szabvány szerinti szám nem tartalmazza az adott számrendszer alapját (radix, r), mivel csak kettes számrendszerben értelmezett. Minden szám tartalmaz egy előjelbitet (s); karakterisztikát (k), melyből az adott számformátum karakterisztikai alapját kivonva (b) megkapjuk a valós kitevőt (e = k – b); és mantisszát (F) egyes normalizált alakban.

Az egyes normalizált azt jelenti, hogy a számokat olyan hatványkitevős, (tehát lebegőpontos) alakra hozzuk, amelyben a szám egészrészén csak az egyeseknek megfelelő helyiértéken található értékes számjegy.

Az IEEE 754/1985 szabvány szerint a lebegőpontos szám mantisszájának egyes normalizált alakja: m = 1.F, ahol a szám egész részén lévő egyes magától értetődő (implicit), ezért azzal hogy nem tároljuk, a szám tört részét tudjuk eggyel több biten ábrázolni.

Az IEEE 754/1985 szabvány szerint 4 féle lebegőpontos számformátum létezik, melyek csak az adott elem bitszámában térnek el egymástól. Az 1985-86-os évben került elfogadásra az IEEE 754-es (854) számú lebegőpontos számábrázolási szabvány, melyet a legfontosabb processzorgyártók is elfogadtak.

Ezek szerint ennél:
• a mantissza előjele 0, ha a szám pozitív és 1, ha negatív;
• a mantisszában levő fixpontos szám 1-re normalizáltan értendő, azaz 1. a formájú;

A szabvány a lebegőpontos műveletvégrehajtáshoz többfajta pontosságot definiál:

Pontosság Előjel Mantissza Karakterisztika

egyszeres = 32 bit 1 bit 23 bit 8 bit

dupla = 64 bit 1 bit 52 bit 11 bit

kiterjesztett = 80 bit 1 bit 64 bit 15 bit

négyszeres = 128 bit 1 bit 112 bit 15 bit

A lebegőpontos szám általános alakja: N = s ∙ m ∙ Re, ahol az s az előjel; m a mantissza, amely önmagában egy tetszőleges fix pontos írásmódú szám; R a számrendszer alapszáma (radixa) és e a karakterisztika, a hatványkitevő, amely önmagában egy tetszőleges fix pontos írásmódú szám.

Bonyolultabb, igen sok lépésből álló számítások során előfordulhat, hogy a műveletek eredménye a legkisebb illetve legnagyobb mantisszájú és karakterisztikájú (a számítógépen még ábrázolható) számnál kisebb, illetve nagyobb. Ezt alulcsordulásnak illetve túlcsordulásnak nevezzük. Többek között az ilyen esetek kezelhetősége érdekében vezeti be a szabvány:

• a denormalizált számot, • a ± 0-t, • a ± végtelen számot és a • „nem számot” (lásd az ábrát).

                   Előjel  Karakterisztika Mantissza

denormalizált szám ± 0 tetszőleges szám ≠ 0 nulla ± 0 0 végtelen ± 11…11 0 „nem szám” ± 11…11 tetszőleges szám ≠ 0

Ezek közül a denormalizált szám az igen kis számértékek számítógépes kezelését segíti (alulcsordulás esetén nem kell a művelet-végrehajtást hibajelzéssel megszakítani). A túlcsordulásokat (igen nagy számok) a „végtelen” számmal kezelhetjük. Az ezekkel végzett műveleteket a szabványnak megfelelő lebegőpontos aritmetikai egység a matematikában szokásos módon fogja értelmezni. Az úgynevezett „nem számok” azt a célt szolgálják, hogy programunk akkor se álljon le, ha az elvégzett művelet (például végtelen/végtelen) matematikailag értelmezhetetlen.

Short real (32 bit)[szerkesztés | forrásszöveg szerkesztése]

A mantissza explicit bites egyes normalizált: m = 1.F

Bitértékek: s = 1 bit, k = 8 bit, F = 23 bit, b értéke: 127

Ábrázolandó számtartomány: 8,43·10-37< |N| <3,37·1038

long real (64 bit)[szerkesztés | forrásszöveg szerkesztése]

A mantissza explicit bites egyes normalizált: m = 1.F

Bitértékek: s = 1 bit, k = 11 bit, F = 52 bit, b értéke: 1023

Ábrázolandó számtartomány: 4,19·10-307< |N| <1,67·10308

Temporary real (80 bit)[szerkesztés | forrásszöveg szerkesztése]

A mantissza explicit bites egyes normalizált: m = 1.F

Bitértékek: s = 1 bit, k =15 bit, F = 64 bit, b értéke: 16383

Ábrázolandó számtartomány: 3,4·10-4932< |N| <1,2·104932

Quad real (128 bit)[szerkesztés | forrásszöveg szerkesztése]

A mantissza explicit bites egyes normalizált: m = 1.F

Bitértékek: s = 1 bit, k =15 bit, F = 112 bit, b értéke: 16383