Kod znak-moduł (ZM)

Komentarze

Transkrypt

Kod znak-moduł (ZM)
Wprowadzenie do informatyki - ć wiczenia
Kod znakznak-moduł (ZM)
dr inż . Izabela Szczęch
WSNHiD
Ćwiczenia z wprowadzenia do informatyki
Reprezentacja liczb całkowitych
§ Jak kodowany jest znak liczby?
§ Omó wimy dwa sposoby kodowania liczb ze znakiem:
§ kod znak-moduł(ZM),
§ kod uzupełnień do dwu (U2).
2
Izabela Szczęch
1
Wprowadzenie do informatyki - ć wiczenia
Plan zaję ć
n
Kod ZM – definicja i konwersja
n
Zakresy liczb reprezentowanych w kodzie ZM
n
Arytmetyka w kodzie ZM
3
Kod znakznak-moduł definicja i konwersja
Izabela Szczęch
2
Wprowadzenie do informatyki - ć wiczenia
Kod ZM
§ Kod znak-modułto kod, w któ rym:
§ najstarszy bit liczby jest bitem znaku
§ wszystkie bity liczby poza najstarszym mają takie
same znaczenie jak w naturalnym kodzie binarnym
§ Jeśli przyjmiemy do zapisu liczb format całkowity n-bitowy,
to liczby w kodzie znak-modułmają następują cą postać:
cn-1
cn-2 cn-3 ... c2 c1 c0
znak
moduł
Koncepcyjnie binarny kod ZM jest taki sam jak uż ywany przez nas system
dziesiętny, któ ry ró wnież na począ tku ma zapisany znak liczby, a dalej jej
wartość czyli moduł
§ Kod znak-modułwystępuje też pod nazwami: ZM, Z-M, SM (Signed
Magnitude), S+M
5
Kod ZM
Wartość n-bitowej, całkowitej liczby w kodzie ZM obliczamy
wg wzoru:
w(ZM) = (-1)bit znaku x modułliczby
Rozpisują c poszczegó lne bity otrzymujemy w binarnym
kodzie ZM:
cn-1cn-2...c2c1c0 (ZM)=
(-1) cn-1 (cn-22n-2 + ... + c222 + c121 + c020)(10)
gdzie
c - cyfra dwó jkowa 0 lub 1,
n - liczba bitó w w zapisie liczby
Bit znaku: 0 – liczba dodatnia, 1 – liczba ujemna
6
Izabela Szczęch
3
Wprowadzenie do informatyki - ć wiczenia
Konwersja z kodu ZM
na system dziesię tny - przykłady
§ 10110111(ZM) = (-1)1 x (25 + 24 + 22 + 21 + 20)
= - (32 + 16 + 4 + 2 + 1)
= - 55(10)
§ 00110111(ZM) = (-1)0 x (25 + 24 + 22 + 21 + 20)
= 1 x (32 + 16 + 4 + 2 + 1)
= 55(10)
7
Konwersja z systemu dziesię tnego
na kod ZM
1. Jeśli liczba jest dodatnia, to bit znaku ma wartość 0.
W przeciwnym razie bit znaku ma wartość 1.
2. Przeliczamy wartość bezwzględną liczby (czyli jej moduł)
z zapisu dziesiętnego na dwó jkowy.
3. 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.
4. Przed bitami modułu wpisujemy bit znaku i w ten sposó b
otrzymujemy zapis ZM
8
Izabela Szczęch
4
Wprowadzenie do informatyki - ć wiczenia
Konwersja z systemu dziesię tnego
na kod ZM - przykłady
Przekształć poniż sze liczby dziesiętne na kod ZM na 8 bitach
1. liczba 13(10)
§
liczba jest dodatnia, więc bit znaku = 0
§
zapisujemy binarnie modułliczby: |13(10)| = 13(10) = 1101
§
uzupełniamy zapis do zadanego formatu 13(10) = 0001101
§
dopisujemy przed liczbą bit znaku: 13(10) = 00001101(ZM)
2. liczba -13(10)
§
liczba jest ujemna, więc bit znaku = 1
§
zapisujemy binarnie modułliczby: |-13(10)| =13(10) = 1101
§
uzupełniamy zapis do zadanego formatu 13(10) = 0001101
§
dopisujemy przed liczbą bit znaku: 13(10) = 10001101(ZM)
9
Zakres liczb
w kodzie ZM
Izabela Szczęch
5
Wprowadzenie do informatyki - ć wiczenia
Zakres liczb w kodzie ZM
§ Jaka jest najmniejsza i największa wartości liczby, któ rą
da się przedstawić w danym kodzie ZM?
§ Łatwo zauważ yć, ż e w obu przypadkach modułmusi mieć
wartość maksymalną , a bit znaku 1 dla wartości
najmniejszej i 0 dla wartości największej.
Zadania:
1. Wyznacz zakres liczb dziesiętnych reprezentowanych w
kodzie ZM na 4, 8 i 16 bitach.
2. Podaj ogó lny wzó r na określają cy zakres n-bitowych liczb
w kodzie ZM.
11
Zakres liczb w kodzie ZM
§ Zakres n-bitowej liczby w kodzie ZM określony jest
wzorem:
Z(ZM) = <<-2n-1 + 1, 2n-1 - 1>
12
Izabela Szczęch
6
Wprowadzenie do informatyki - ć wiczenia
Arytmetyka
w kodzie ZM
Dodawanie i odejmowanie w ZM
§ Aby otrzymywać poprawne wyniki dodawania czy
odejmowania liczb w reprezentacji ZM musimy postępować
według regułzebranych w poniż szych tabelkach.
Reguły dodawania liczb w kodzie ZM
wynik = a(ZM) + b(ZM)
znak a(ZM)
znak b(ZM)
0
0
1
1
0
1
1
0
operacja
dodawanie
modułó w
dodawanie
modułó w
odejmowanie
modułu mniejszego
od modułu większego
znak wyniku
0
1
znak większego
modułu
14
Izabela Szczęch
7
Wprowadzenie do informatyki - ć wiczenia
Dodawanie i odejmowanie w ZM
Reguły odejmowania liczb ZM
wynik = a(ZM) - b(ZM)
znak a(ZM)
0
znak b(ZM)
0
1
1
0
1
1
0
operacja
odejmowanie
modułu mniejszego
od modułu
większego
znak wyniku
Znak a(ZM), jeśli moduł
ten jest większy
od modułu b(ZM).
Inaczej znak
przeciwny.
dodawanie
modułó w
dodawanie
modułó w
0
1
15
Dodawanie i odejmowanie w ZM
- przykłady
§ Przyjmijmy dwó jkową reprezentację znak-moduł
na 8-miu bitach:
-5 + 100=95
-100 + (-5)=-105
0
11 0 0 1 0 0
1
11 0 0 1 0 0
1
- 00 0 0 1 0 1
1
+ 00 0 0 1 0 1
0
10 1 1 1 1 1
1
11 0 1 0 0 1
od większego modułu
(czyli liczby 100) odejmujemy
mniejszy (czyli 5), a bit znaku
ustawiamy zgodnie ze znakiem
większego modułu (czyli na 0)
dodają c liczby o tym samym
znaku, dodajemy ich moduły, a
bit znaku ustawiamy zgodnie ze
znakiem dodawanych liczb
16
Izabela Szczęch
8
Wprowadzenie do informatyki - ć wiczenia
Kod ZM –nadmiar i niedomiar
§ Ponieważ liczby zapisane w systemie ZM posiadają
ustalony format (ilość bitó w jest stała), to przy
wykonywaniu operacji arytmetycznych moż e dochodzić
do nadmiaró w (wynik większy niż moż na przedstawić za
pomocą dostępnych bitó w modułu) lub niedomiaró w
w..
§ Przy dodawaniu i odejmowaniu wg opisanych regułdla
liczb ZM nadmiar (niedomiar) moż na wykryć, jeśli
wystą piło przeniesienie (lub poż yczka) na pozycję
znakową .
17
Kod ZM –nadmiar i niedomiar
§ Przyjmują c dwó jkową reprezentację znak-moduł na 8-miu
bitach, wyniki poniż szych działań nie mogą być
reprezentowane (występuje nadmiar i niedomiar):
100+40=nadmiar
-100-40=niedomiar
0
1 1 0 0 1 0 0
1
1 1 0 0 1 0 0
0
+ 0 1 0 1 0 0 0
0
+ 0 1 0 1 0 0 0
1
0 0 0 1 1 0 0
0
0 0 0 1 1 0 0
przeniesienie na bit
znaku
przeniesienie na bit
znaku
18
Izabela Szczęch
9
Wprowadzenie do informatyki - ć wiczenia
Kod ZM –podsumowanie
§ Koncepcyjnie prosty, lecz stwarzałpoważ ne problemy
przy wykonywaniu operacji arytmetycznych
§ Bit znakowy posiada zupełnie inne znaczenie od
pozostałych bitó w i nie uczestniczy bezpośrednio w
operacjach arytmetycznych.
§ Niejednoznaczność!!! - wartość 0 posiada dwa słowa
kodowe: 0000 oraz 1000.
19
Arytmetyka w kodzie ZM -zadania
Zadania:
Stosują c dwó jkową reprezentację znakznak-modułna 88-miu
bitach zapisz następują ce liczby całkowite i wykonaj
działania:
a)
b)
c)
d)
e)
18 + 20
-30 + ((-25)
-20 + 60
120 + 32
-65 + ((-84)
20
Izabela Szczęch
10

Podobne dokumenty