Kod znak-moduł (ZM)
Kod znak-moduł jest jednym ze sposobów zapisu liczb całkowitych.
Najstarszy bit w tym kodzie jest bitem znaku, natomiast pozostałe bity mają takie samo znaczenie jak te w
naturalnym kodzie binarnym. Jeżeli bit znaku ma wartość 1 to liczba jest ujemna w przeciwnym przypadku liczba
jest dodatnia. Taki stan rzeczy powoduje, że w systemie znak-moduł mamy dwie reprezentacje zera:
+0 (00000000ZM)
oraz
-0 (10000000ZM)
Jest to wada systemu.
Liczbę w systemie znak-moduł możemy zapisać za pomocą ogólnego wzoru:
bn-1bn-2bn-3...b2b1b0
bn-1 - bit znaku liczby
bn-3 ... b0 - bity modułu liczby
Przykład:
10110111(ZM) = (-1)1 x (25 + 24 + 22 + 21 + 20) = - (32 + 16 + 4 + 2 + 1) = - 55(10)
Format zapisu ZM musi być ściśle ustalony, aby wiadomo było, który bit jest bitem znaku - w operacjach arytmetycznych
bit znaku musimy traktować inaczej niż inne bity. Niezastosowanie się do ściśle określonych reguł może doprowadzić do
otrzymania błędnych wyników obliczeń.
Zakres liczby w zapisie znak-moduł.
Zakres n bitowej liczby w kodzie ZM wynosi:
Z(ZM) = <-2n-1 + 1, 2n-1 - 1>
Dla 8 bitowej liczby w zapisie ZM mamy zakres:
od -27 + 1 = -127 = 11111111(ZM)
do 27 - 1 = 127 = 01111111(ZM)
|