Professional Documents
Culture Documents
Ćwiczenie nr 2
Reprezentacja liczb zmiennoprzecinkowych. Standard IEEE 754. Algorytm Bootha.
c) w kodzie U2:
Założenia wstępne (przykładowe): liczby chcemy zakodować na 12 bitach, przy założeniu, że 8 bitów
ma kodować mantysę, 4 bity cechę, a przecinek w mantysie znajduje się pomiędzy bitem 9 a 10.
Sprawdzenie:
01111101|0110
0110 (U2) = 6(10)
01,111101 x 26 = 01111101(U2) = 125(10) wynik nie zgadza się z liczbą przed konwersją
Przy konwersji liczb na standard IEEE 754 należy pamiętać o odpowiednim przekształceniu wartości
wykładnika – należy uwzględnić nadmiar (dodać lub odjąć wartość nadmiaru = 127).
9 25 6 25 6
𝐿𝐼𝐸𝐸𝐸 754 = (−1)𝑆 ∙ 𝑀 ∙ 2𝐶 = (−1)0 ∙ 1 ∙ 26 = ∙ 2 = 4 ∙ 2 = 25 ∙ 22 = 25 ∙ 4 = 100
16 16 2
01000010110010000000000000000000(IEEE 754) = 100(10)
11 4 27 27
𝐿𝐼𝐸𝐸𝐸 754 = (−1)𝑆 ∙ 𝑀 ∙ 2𝐶 = (−1)1 ∙ 1 ∙ 2 = − ∙ 24 = − 4 ∙ 24 = −27
16 16 2
11000001110110000000000000000000(IEEE 754) = -27(10)
Kolejnym krokiem jest ponowna normalizacja mantysy, aby wynik można było zapisać z powrotem w
standardzie IEEE 754:
11,001100011 ∙ 24 = 1,1001100011 ∙ 25
127 + 5 = 132(10) = 10000100 (10)
0 | 10000100 | 10011000110000000000000
KROK A Q Q -1 Operacja
1 0 0 0 0 0 0 0 1 0 1 0 -P
+ 1 0 1 1 1 0 0 0 0 0 0 ADD
1 0 1 1 1 0 0 1 0 1 0 SHR
2 1 1 0 1 1 1 0 0 1 0 1 +P
+ 0 1 0 0 1 0 0 0 0 0 0 ADD
1 0 0 1 0 0 1 0 0 1 0 0 SHR
3 0 0 0 1 0 0 1 0 0 1 0 -P
+ 1 0 1 1 1 0 0 0 0 0 0 ADD
1 1 0 0 1 0 1 0 0 1 0 SHR
4 1 1 1 0 0 1 0 1 0 0 1 +P
+ 0 1 0 0 1 0 0 0 0 0 0 ADD
1 0 0 1 0 1 1 0 1 0 0 1 SHR
5 0 0 0 1 0 1 1 0 1 0 0 SHR
0 0 0 0 1 0 1 1 0 1 0 STOP
WYNIK
W kolumnie A (ang. addition) przechowywyany jest wynik pośredni kolejnych kroków algorytmu.
W kolumnie Q w pierwszym kroku zostaje wpisany mnożnik.
mgr inż. Alicja Gerka
Zakład Systemów Złożonych, Politechnika Rzeszowska im. Ignacego Łukasiewicza
W kolumnie Q-1 znajduje się zawartość najmniej znaczącego bitu z kolumny Q przed wykonaniem
operacji przesunięcia bitowego (z czego wynika wartość 0 tego bitu w stanie początkowym).
Pierwsze porównanie bitów zawsze odbywa się z bitem 0 w kolumnie Q-1. Operacja SHR wykonywana
jest w ten sposób, że jeżeli najbardziej znaczący bit (ten z lewej) równy jest 0, to po przesunięciu
w prawo bit ten także jest równy 0, jeżeli zaś jest on równy 1, to po przesunięciu w prawo nadal wynosi
1 (wynika to z rozszerzania znakowego liczby w kodzie U2). Jak widać wykonanych jest tyle operacji
SHR - ilu bitowe są liczby, a w prezentowanym przykładzie wykonano tylko 4 operacje dodawania
(ADD). Jak łatwo zauważyć algorytm ten zdecydowanie zmniejsza liczbę wykonywanych dodawań,
jeżeli w mnożniku występują długie ciągi zer lub jedynek.
KROK A Q Q -1 Operacja
1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 -P
+ 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 ADD
0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 SHR
2 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 +P
+ 1 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 ADD
1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 SHR
3 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 -P
+ 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 ADD
1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 SHR
4 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 SHR
5 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 SHR
6 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 +P
+ 1 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 ADD
1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 SHR
7 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 SHR
8 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 -P
+ 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 ADD
1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 SHR
9 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 +P
+ 1 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 ADD
1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 1 SHR
1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 STOP
WYNIK
7. Wykonaj obliczenia z wykorzystaniem algorytmu Booth’a, wynik podaj w standardzie IEEE 754
245,375(10) ∙ 2,5(10)
-50,75(10) ∙ -4,75(10)