Dodawanie wykonuje się tak jak dla liczb bez znaku.
Przy dodawaniu liczb ujemnych pomija sie przeniesienie:
00001100= 12 00010100 = 20 00100000 = 32
11111111 =-t 111111 10 = -2 11111101 = —3
--------- (pomijane przeniesienie) l_i
Przy dodawaniu b. dużych liczb dodatnich albo ujemnych, uzyskany wynik może być nieprawidłowy, jak np.
01000000 = 64 11000000 = -64
-r 01000001 =65 + 1-9111111 =
10000001 = -127fpowinno być +129!) QIU 1111= ~-127(powinno być -129’.)
(pomijane przeniesienie) 1_!
Występuję 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: 00000111
-5-11111010
00000010 = 4-2. n
(pomijane przeniesienie) 1-1
Dla dodawania w tym zapisie wykorzystuje się sumatory o strukturach omówionych poprzednio. Dla odejmowania wykorzystuje się też te sumatory, ale na jedno wejście podaje się zanegowany odjemnik a na przeniesienie początkowe wartość 1. wynik pojawia sie na wyjściach sumatorów. Jest to wielka zaleta zapisu uzupełnień do 2.
•+7 Bj
3,
•4g Br)
Rys. 3.5. 8-bitowy układ odejmujący