Document

advertisement
1. Kodowanie znak moduł:
Poniżej tabelka wartości 4 bitowego kodu znak-moduł:
Procedura wyznaczania zapisu ZM liczby dziesiętnej
1. Jeśli liczba jest dodatnia, to bit znaku ma wartość 0. W przeciwnym razie bit znaku ma
wartość 1.
2. Obliczamy wartość absolutną liczby, czyli jej moduł.
3. Wyznaczamy bity modułu według metody podanej w rozdziale o przeliczaniu liczb
dziesiętnych na system dwójkowy.
4. Otrzymane bity modułu uzupełniamy w miarę potrzeby bitami o wartości 0, aby otrzymać
ustaloną w formacie liczbę bitów dla modułu.
5. Do bitów modułu dodajemy bit znaku i otrzymujemy zapis ZM.
Przykład:
Przedstawić w 8-mio bitowym kodzie ZM liczbę o wartości dziesiętnej -9.
1. Wyznaczamy bit znaku. Liczba -9 jest ujemna, zatem b7 = 1 (najstarszy bit).
2. Wartość absolutna z -9 to 9 (po prostu opuszcza się znak -).
3. Obliczamy zapis dwójkowy modułu 9(10) = 1001(2).
4. Moduł 8-mio bitowej liczby ZM składa się z 7 bitów, zatem do otrzymanego wyniku
dodajemy trzy początkowe zera otrzymując 0001001.
5. Łączymy bit znaku 1 z bitami modułu 0001001 i dostajemy zapis ZM liczby -9(10) =
10001001(ZM).
2. Przesunięcie bitowe w lewo:
Na najmłodszą pozycję dopisywany jest bit o wartości zero, natomiast najstarszy bit jest tracony, np.:
011010002 ----- 110100002 (10410---- 20810)
Wartość liczby w naturalnym kodzie binarnym jest 2 razy większa. Większe przesunięcia są
równoważne przemnożeniu przez potęgę dwójki.
3. Przesunięcie bitowe w prawo:
Na najstarszą pozycję dopisywany jest bit o wartości zero, natomiast najmłodszy bit jest tracony, np.:
100111012------ 010011102 (15710 -------7810)
Wartość liczby w naturalnym kodzie binarnym jest 2 razy mniejsza (dzielenie całkowitoliczbowe).
4. Przesuniecie arytmetyczne w prawo:
Używane dla liczb zapisanych w powszechnie stosowanym kodzie uzupełnień do dwóch (U2). Bit z
najstarszej pozycji jest powielany, natomiast najmłodszy bit jest tracony, np.:
10011100u2 ------- 11001110u2 (-10010 ------ -5010)
Gdyby zastosować zwykłe przesunięcie bitowe wynikiem byłoby 7810.
Zadania: Zapisz w kodzie ZM takie liczby:
a) -6
b) 11
c) -10
d) 2
e) 0
Zad 2 Dokonaj przesunięcia bitowego podanych liczb:
a) 01001110=.............................................
b) 01101001=..............................................
c) 00001111=................................................
d) 0111001=....................................................
Zad 3 Dokonaj przesunięcia arytmetycznego w prawo i w lewo liczb:
a) 10101010(u2)=.................................................................
b) 11100111(u2)=................................................................
c) 10011001(u2)=...............................................................
d) 10010011(u2)=...................................................................
e) 111010u2=........................................................................
f) 10101010u2=....................................................................
Download