Reprezentacja zmiennoprzecinkowa

Transkrypt

Reprezentacja zmiennoprzecinkowa
Reprezentacja zmiennopozycyjna
✦ Liczby wymierne
✦ 0,0000000000000976 = 9,76x10-14
✦ (mantysa)x10wykładnik
✦ Łatwa reprezentacja graficzna
✦ 1001.1010 = 24 + 20 +2-1 + 2-3 =9.625
✦ Jak w zapisie binarnym zaznaczyć początek
części ułamkowej?
✦ Stała pozycja ma ograniczony zakres
✦ Jeśli zmienna to jak ją reprezentować binarnie
Format zmiennopozycyjny
znak
8 bitów
✦
✦
✦
✦
✦
✦
wykładnik
23 bity
mantysa
znak (ang. sign) mantysy: + lub – (0 lub 1)
(przesunięty) wykładnik (ang. biased exponent)
mantysa (ang. significand)
+/- .mantysa x 2wykładnik
pozycję przecinka w wyznacza wykładnik (cecha)
liczby zmiennoprzecinkowe
Przykład
Znak wykładnika
✦ reprezentacja przesunięta (ang. excess, biased)
✦ wykładnik rzeczywisty = (zawartość pola
wykładnika) + przesunięcie + 1
✦ wynik w traktowany jako U2
✦ np. przesunięcie 128 dla 8 bitowego pole wykładnika
✦ 10010011 + 10000000+1 = 00010100 = 20
✦ 01101011 + 10000000+1 = 11101100 = –20
✦ skąd to dodawanie jedynki?
Normalizacja
✦ Liczba zmiennoprzecinkowa (ang. floating point,
FP) jest znormalizowana jeśli najbardziej
znacząca cyfra mantysy równa jest 1
✦ wykładnik jest odpowiednio dostosowywany
✦ ponieważ postać znormalizowana ma zawsze
jedynkę można jej nie zapisywać tylko
powiększyć wykładnik o 1
✦ 20 – 127 = 00010100 – 10000000 – 1 = 10010011
✦ – 20 – 127 = 11101100 – 10000000 – 1 = 01101011
✦ nie pozwala to przedstawić zera
Zakres liczb
zmiennoprzecinkowych
✦ Dla liczb 32 bitowych z wykładnikiem 8 bitowym
✦ liczby ujemne: od –(2–2-23)·2128 do –2-127
✦ liczby dodatnie: od 2-127 do (2-2-23) ·2128
✦ Obszary poza zakresem
✦ przepełnienie ujemne (ang. negative overflow)
✦ liczby ujemne < –(2–2-23) ·2128
✦ niedomiar ujemny (ang. negative underflow)
✦ liczby ujemne > 2-127
✦ zero
✦ niedomiar dodatni (ang. positive underflow)
✦ liczby dodatnie < 2-127
✦ przepełnienie dodatnie (ang. positive overflow)
✦ liczby dodatnie > (2–2-23) ·2128