"Działania arytmetyczne w kodzie znak-moduł"
Podaj 2 liczby w kodzie znak-moduł. Wynik zostanie przedstawiony na 8 bitach:
Suma:
Dodając 2 liczby w kodzie znak-moduł musimy zastosować reguły opisane w poniższej tabelce.
Stosując tylko zasady arytmetyki dwójkowej otrzymamy błędne wyniki.
Reguły dodawania liczb ZM
wynik = a(ZM) + b(ZM)
|
Znak a(ZM) | Znak b(ZM) | Operacja | Znak wyniku |
0 | 0 | dodawanie modułów | 0 |
1 | 1 | dodawanie modułów | 1 |
0 | 1 | odejmowanie modułu mniejszego od modułu większego | znak większego modułu |
1 | 0 |
W działaniach uczestniczą tylko moduły liczb. Bity znaków pełnią różne funkcje decyzyjne opisane w powyższej tabelce.
Przykłady:
0011 | 1100 | 1101 | 0100 |
+ 0010
| + 1010
| - 0100
| - 1011
|
0101 | 1110 | 1001 | 0001 |
3+2 = 5 | (-4)+(-2) = -6 | 4+(-5) = -1 | 4+(-3) = 1 |
Różnica:
Podobnie sytuacja przedstawia się dla odejmowania.
Chcąc w poprawny sposób odjąć od siebie liczby zapisane w kodzie znak-moduł musimy zastosować się do reguł zawartych w poniższej tabelce.
Reguły odejmowania liczb ZM wynik = a(ZM) - b(ZM) |
Znak a(ZM) | Znak b(ZM) | Operacja | Znak wyniku |
0 | 0 | Odejmowanie modułu mniejszego od modułu większego | Znak a(ZM), jeśli moduł ten jest większy od modułu b(ZM). Inaczej znak przeciwny. |
1 | 1 |
0 | 1 | Dodawanie modułów | 0 |
1 | 0 | Dodawanie modułów | 1 |
Przykłady:
0011 | 1100 | 0101 | 1100 |
- 0010
| - 1010
| + 1010
| + 0011
|
0001 | 1010 | 0111 | 1111 |
3-2 = 1 | (-4)-(-2) = -2 | 5-(-2) = 7 | (-4)-3 = -7 |
Iloczyn i iloraz:
Dla mnożenia i dzielenia stosujemy te same reguły zawarte w poniższej tabelce:
Reguły mnożenia i dzielenia liczb ZM
wynik = a(ZM) x b(ZM)
wynik = a(ZM) : b(ZM)
|
Znak a(ZM) | Znak b(ZM) | Operacja | Znak wyniku |
0 | 0 | Mnożenie lub dzielenie modułów | Jeśli znaki a(ZM) i b(ZM) są takie same, to 0. Inaczej 1 |
1 | 1 |
0 | 1 |
1 | 0 |
Przykłady:
0011 | 1100 | 0101 | 1100 |
* 0010
| * 1010
| * 1010
| * 0011
|
000 | 000 | 000 | 100 |
011 | 100 | 101 | 100 |
+ 000
| + 000
| + 000
| + 000
|
00110 | 01000 | 11010 | 11100 |
3*2 = 6 | (-4)*(-2) = 8 | 5*(-2) = -10 | (-4)*3 = -12 |
0 1,01
| 0 1,01
| 1 10,1
|
0 101: 0 100 | 1 101: 1 100 | 0 101: 1 010 |
-100
| -100
| -10
|
00100 | 00100 | 0010 |
-100
| -100
| -010
|
000 | 000 | 000 |
5:4 = 1,25 | (-5):(-4) = 1,25 | 5:(-2) = -2,5 |
|