logo

Sčítání a odčítání pomocí doplňku 1

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

  1. 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.
  2. Nyní sečtěte obě čísla, tj. 1101 a 0110;
    1101+0110=1 0011
  3. 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

  1. 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.
  2. Nyní sečtěte obě čísla, tj. 1101 a 0001;
    1101+0001= 1110
  3. 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

  1. 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.
  2. Nyní sečteme obě čísla doplňku, tj. 10001 a 10010;
    10001+10010= 1 00011
  3. Sečtením obou čísel dostaneme end-around carry 1. Toto end-around carry přidáme k LSB 00011.
    00011+1=00100
  4. 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ěď.