Dodawanie wykonuje się tak jak dla liczb bez znaku. Przy dodawaniu liczb ujemnych pomija się przeniesienie:
oooouco = 12
-i- 00010100 = 20 00100000 = 32
11111111 =-l + 11111110 = -2 11111101 =-3
------- (pomijane przeniesienie) 1-
Przv dodawaniu b. dużych liczb dodatnich albo ujemnych, uzyskany wynik może być nieprawidłowy, jak np.
11000000 = -64 + lOimil = -65
0111 U 11 = +127<’powinno być -129!)
(pomijane przeniesienie) lJ
01000000 = 64 + 01000001 =65
10000001 = — 127(powinno być 4-129!)
Występuje tu zjawisko nadmiaru (przepełnienia arytmetycznego). Wynik nie mieści się w zakresie liczb zapisywalnych na danej długości zapisu.
Dlatego zawsze kontroluje się wystąpienie nadmiaru, przy użyciu dodatkowych układów logicznych dołączonych do sumatora. Nadmiar ustawia na 1 tzw. przerzutnik (flagę) nadmiaru procesora i jest sygnalizowany jako błąd do systemu operacyjnego.
Odejmowanie wykonywane jest poprzez dodanie do odjemnej uzupełnienia do 2 odjemnika, czyli dodanie zanegowanego odjemnika i liczby zawierającej jedynkę na najmniej znaczącej pozycji: oooooi 11 ^ S ^
+11111010
l
00000010 = +2,0
(pomijane przeniesienie) l-i
Dla dodawania w tym zapisie wykorzystuje się sumatory o strukturach omówionych poprzednio. Dla odejmowania wykorzystuje się też tc sumatory, ale na jedno wejście podaje się zanegowany odjemnik a na przeniesienie początkowe wartość 1. wynik pojawia sic na wyjściach sumatorów. Jest to wielka zaleta zapisu uzupełnień do 2.
Ai 'O S.t ffo
Rys. 3.5. 3-bitcwy układ odejmując/