V naší předchozí části jsme se dozvěděli o různých doplňcích, jako je doplněk 1, doplněk 2, doplněk 9 a doplněk 10 atd.. V této části se naučíme provádět aritmetické operace, jako je sčítání a odčítání pomocí doplňku 1. Sčítání a odčítání můžeme provádět pomocí doplňku 1, 2, 9 a 10.
Sčítání pomocí doplňku 1
Když sečteme dvě binární čísla, jsou možné tři různé případy:
Případ 1: Sčítání kladného čísla se záporným číslem, když kladné číslo má větší velikost.
Nejprve vypočítejte doplněk 1 daného záporného čísla. Sečtěte s daným kladným číslem. Pokud dostaneme end-around carry 1, přidá se k LSB.
Příklad: 1101 a -1001
- Nejprve najděte doplněk 1 záporného čísla 1001. Chcete-li tedy najít doplněk 1, změňte všechny 0 na 1 a všechny 1 na 0. Doplněk 1 k číslu 1001 je 0110.
- Nyní sečtěte obě čísla, tj. 1101 a 0110;
1101+0110=1 0011 - Sečtením obou čísel dostaneme end-around carry 1. Tento end around carry přidáme k LSB 0011.
0011+1=0100
Případ 2: Přidání kladné hodnoty k záporné hodnotě v případě, že záporné číslo má vyšší hodnotu.
Nejprve vypočítejte doplněk 1 záporné hodnoty. Sečtěte to kladným číslem. V tomto případě jsme nedostali end-around carry. Takže vezměte doplnění výsledku 1, abyste získali konečný výsledek.
Poznámka: Výsledkem je záporná hodnota.
Příklad: 1101 a -1110
- Nejprve najděte doplněk 1 záporného čísla 1110. Abychom našli doplněk 1, změníme všechny 0 na 1 a všechny 1 na 0. Doplněk 1 čísla 1110 je 0001.
- Nyní sečtěte obě čísla, tj. 1101 a 0001;
1101+0001= 1110 - Nyní najděte doplněk 1 k výsledku 1110, který je konečným výsledkem. Doplněk 1 k výsledku 1110 je tedy 0001 a před číslo přidáme záporné znaménko, abychom mohli identifikovat, že jde o záporné číslo.
Případ 3: Sečtení dvou záporných čísel
V tomto případě nejprve najdeme doplněk 1 obou záporných čísel a poté obě tato čísla doplňků sečteme. V tomto případě vždy dostaneme end-around carry, které se přidají k LSB, a pro získání konečného výsledku vezmeme doplněk k výsledku 1.
Poznámka: Výsledkem je záporná hodnota.
Příklad: -1101 a -1110 v pětibitovém registru
- Nejprve najděte doplněk 1 záporných čísel 01101 a 01110. Abychom našli doplněk 1, změníme všechny 0 na 1 a všechny 1 na 0. Doplněk 1 k číslu 01110 je 10001 a 01101 je 10010.
- Nyní sečteme obě čísla doplňku, tj. 10001 a 10010;
10001+10010= 1 00011 - Sečtením obou čísel dostaneme end-around carry 1. Toto end-around carry přidáme k LSB 00011.
00011+1=00100 - Nyní najděte doplněk 1 k výsledku 00100, který je konečnou odpovědí. Doplněk 1 k výsledku 00100 je tedy 110111 a před číslo přidejte záporné znaménko, abychom mohli identifikovat, že se jedná o záporné číslo.
Odečítání pomocí doplňku 1
Toto jsou následující kroky k odečtení dvou binárních čísel pomocí doplňku 1
- V prvním kroku najděte doplněk 1 subtrahendu.
- Dále přidejte číslo doplňku s minuendem.
- Pokud máte přenos, přidejte přenos do jeho LSB. Jinak vezměte 1 doplněk k výsledku, který bude záporný
Poznámka: Hodnota subtrahendu se vždy odečte od minuendu.
Příklad 1: 10101 - 00111
Vezmeme doplněk 1 subtrahendu 00111, který vyjde 11 000. Nyní je sečtěte. Tak,
10101+11000 =1 01101.
Ve výše uvedeném výsledku dostaneme přenosový bit 1, takže jej přidejte k LSB daného výsledku, tj. 01101+1=01110, což je odpověď.
Příklad 2: 10101–10111
Vezmeme doplněk 1 subtrahendu 10111, který vyjde 01000. Nyní sečtěte obě čísla. Tak,
10101+01000 =11101.
Ve výše uvedeném výsledku jsme nesehnali bit. Vypočítejte tedy doplněk 1 výsledku, tj. 00010, což je záporné číslo a konečná odpověď.