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