Zmiennoprzecinkowe w standardzie IEEE 754

Reprezentacja 32 bitowa

zcccccccc mmmmmmmmmmmmmmmmmmmmmmm
z - znak, 1 bit
c - cecha, 8 bitów
m - mantysa,1 bit domyślny o wartości 1 + 23 bity (po przecinku) 1.mmmmmmmmmmmmmmmmmmmmmmm

Znormalizowana

Transformacja na reprezentację dziesiętną

L10 = (-1)zM2C-127
gdzie:
C jest zamienioną na postać dziesiętną cechą cccccccc,
M zamienioną na postać dziesiętną mantysą.

przykład:
liczbę 0 01101011 11001110000000000000000
C = 107,
M = 1.11001112 = 111001112⋅2-7 = 23110⋅2-7
L10 = (-1)0⋅231⋅2-7⋅2107-127=231⋅2-27 ≈ 1.721⋅10-6

Największa dopuszczalna cecha dla liczb skończonych to 111111102.
Największa liczba to:
0 11111110 11111111111111111111111
co w zapisie dziesiętnym odpowiada:
Lmax = 2254-127⋅1.111111111111111111111112 = 2127⋅2-23⋅(224-1) ≈ 3.4028⋅1038

Cecha 111111112 zarezerwowana jest dla specjalnych liczb:
0 11111111 000000000000000000000002  to  +∞
1 11111111 000000000000000000000002  to  -∞
1 11111111 (mantysa różne od zera)2  to  NaN (Not a Number)

Zdenormalizowana

Cecha zapisana jest samymi zera i jest równa -126,
mantysa to 0.mmmmmmmmmmmmmmmmmmmmmmm.

przykład:
0 00000000 10110000000000000000000
L10=0.10112⋅2-126 = 10112⋅2-4⋅2-126 ≈ 8.08⋅10-39

Minimalna liczba większa od zera w tym standardzie to:
0 00000000 00000000000000000000001
co w zapisie dziesiętnym odpowiada:
Lmin = 2-126⋅2-23 ≈ 1.4013⋅10-45
cdn.

Literatura

IEEE 754
Waldemar Tokarz; ostatnia modyfikacja 24.04.2008

Valid XHTML 1.0 Strict