Znormalizowana postać zmiennopozycyjnax
Transkrypt
Znormalizowana postać zmiennopozycyjnax
Mirosław Mortka: Reprezentacja binarna liczb rzeczywistych ZNORMALIZOWANA POSTAĆ POSTAĆ ZMIENNOPOZYCYJNA Dowolną liczbę rzeczywistą x ≠ 0 można żna zapisać w tzw. znormalizowanej postaci zmiennopozycyjnej: zmiennopozycyjnej c x = s ⋅ 2 ⋅ m gdzie: s = +1 lub -1 (znak), c ∈ C (cecha), m ∈ < 0.5, 1) (matysa). Dla x = 0 znak, mantysa i cecha wynoszą s = c = m = 0. Niestety, liczb rzeczywistych stych mamy nieskończenie wiele. Komputer nie chce i nie rozumie takiego pojęcia. Dlatego stoimy przed wyzwaniem, jak zapisać dowolną liczbę rzeczywistą w skończonym formacie, formacie, to znaczy jak wybrać skończony skończ podzbiór liczb rzeczywistych tak, by jak najlepiej reprezentował ich wartości. Spróbujmy w ogromnym uproszczeniu dokonać zamian. ZAMIANA LICZB RZECZYWISTYCH ZAPISANYCH W SYSTEMIE SYSTEMI DZIESIĘTNYM NA BINARNĄ ZNORMALIZOWANĄ POSTAĆ ZMIENNOPOZYCYJNĄ ZMIENNOPOZ Aby zobrazować sposób zapisu liczb rzeczywistych ustalmy, iż na zapis jednej liczby przeznaczymy dwa bajty. Pierwszy bit oznaczać będzie znak, siedem kolejnych cechę zapisaną w kodzie U2, drugi bajt przeznaczamy na mantysę. PRZYKŁAD: Zapisz liczbę 3.0 w znormalizowanej postaci zmiennopozycyjnej. zmiennopoz Załóżmy, że znak ‘+’ będzie repreezentowany przez wartość 0, ‘–‘ przez 1. 3.5 = +1 ⋅ 0.75 ⋅ 2 2 s = +1, c = 2, m = 0,75 s binarnie to 0, c = 0000010. A mantysa? Skorzystajmy z algorytmu podanego na stronie: stronie http://wazniak.mimuw.edu.pl/index.php?title=WDP_Reprezentacja_liczb: http://wazniak.mimuw.edu.pl/index.php?title=WDP_Reprezentacja_liczb Kolejne lejne cyfry rozwinięcia binarnego będziemy generować w następujący sposób: Dopóki otrzymujesz nienapotkane wcześniej wartości 1. 2. wykonuj: Pomnóż przez 2 Jeżeli otrzymana wartość jest mniejsza od 1, to dopisz cyfrę 1. Jeżeli eżeli otrzymana wartość jest równa co najmniej 1, dopisz cyfrę i odejmij od wyniku 1. Z chwilą, gdy powtórzy się wartość , zakończ procedurę; wypisany ciąg jest okresowy, a jego okresem jest ciąg bitów między powtórzeniami. Korzystając z powyższego wzoru dla m = 0.75 75 otrzymamy otrzyma 11000000. Zatem pełna reprezentacja liczby 3.0 na dwóch bajtach to 0000 0010 1100 0000. 1 Mirosław Mortka: Reprezentacja binarna liczb rzeczywistych ZAMIANA LICZB RZECZYWISTYCH ZAPISANYCH W ZNORMALIZOWANEJ POSTACI ZMIENNOPOZYCYJNEJ NA SYSTEM DZIESIĘTNY Działania przeprowadzimy. PRZYKŁAD: Zapisz liczbę 1111 0011 1001 1010 w znormalizowanej postaci zmiennopozycyjnej. s = -1 c = 1110011(U2) = -12(10) m = 1001 1010(U2) = 1 ⋅ 2 + 0 ⋅ 2 + 0 ⋅ 2 + 1 ⋅ 2 + 1 ⋅ 2 + 0 ⋅ 2 + 1 ⋅ 2 + 0 ⋅ 2 = -1 -2 -3 -4 -5 -6 -7 -8 = 1 ⋅ 0.5 + 1 ⋅ 0.0625 + 1 ⋅ 0.03125 + 1 ⋅ 0.0078125 = 0.6015625 -12 Zatem pełna wartość liczby 1111 0011 1001 1010 to -1 ⋅ 2 ⋅ 0.6015625, co wynosi 0.0001468658447265625 2