V našej predchádzajúcej časti sme sa dozvedeli o rôznych doplnkoch, ako je doplnok 1, doplnok 2, doplnok 9 a doplnok 10 atď. V tejto časti sa naučíme vykonávať aritmetické operácie, ako je sčítanie a odčítanie pomocou doplnku 1. Sčítanie a odčítanie môžeme vykonávať pomocou doplnku 1, 2, 9 a 10.
Sčítanie pomocou doplnku 1
Keď sčítame dve binárne čísla, sú možné tri rôzne prípady:
Prípad 1: Sčítanie kladného čísla so záporným číslom, keď má kladné číslo väčšiu veľkosť.
Najprv vypočítajte doplnok 1 daného záporného čísla. Sčítajte s daným kladným číslom. Ak dostaneme end-around carry 1, pridá sa do LSB.
Príklad: 1101 a -1001
- Najprv nájdite doplnok 1 záporného čísla 1001. Ak teda chcete nájsť doplnok 1, zmeňte všetky 0 na 1 a všetky 1 na 0. Doplnok 1 k číslu 1001 je 0110.
- Teraz pridajte obe čísla, t.j. 1101 a 0110;
1101+0110=1 0011 - Sčítaním oboch čísel dostaneme end-around carry 1. Tento end around carry pridáme k LSB 0011.
0011+1=0100
Prípad 2: Pridanie kladnej hodnoty so zápornou hodnotou v prípade, že záporné číslo má vyššiu veľkosť.
Najprv vypočítajte doplnok 1 k zápornej hodnote. Zhrňte to kladným číslom. V tomto prípade sme nezvládli prenos na konci. Takže vezmite doplnenie výsledku 1, aby ste získali konečný výsledok.
Poznámka: Výsledkom je záporná hodnota.
Príklad: 1101 a -1110
- Najprv nájdite doplnok 1 záporného čísla 1110. Aby sme našli doplnok 1, zmeníme všetky 0 na 1 a všetky 1 na 0. Doplnok 1 čísla 1110 je 0001.
- Teraz pridajte obe čísla, t.j. 1101 a 0001;
1101+0001= 1110 - Teraz nájdite doplnok 1 k výsledku 1110, ktorý je konečným výsledkom. Doplnok 1 k výsledku 1110 je teda 0001 a pred číslo pridáme záporné znamienko, aby sme mohli identifikovať, že ide o záporné číslo.
Prípad 3: Sčítanie dvoch záporných čísel
V tomto prípade najprv nájdite doplnok 1 oboch záporných čísel a potom oba tieto čísla doplnkov spočítame. V tomto prípade vždy dostaneme end-around carry, ktoré sa pridajú k LSB, a na získanie konečného výsledku berieme doplnenie výsledku 1.
Poznámka: Výsledkom je záporná hodnota.
Príklad: -1101 a -1110 v päťbitovom registri
- Najprv nájdite doplnok 1 k záporným číslam 01101 a 01110. Aby sme našli doplnok 1, zmeníme všetky 0 na 1 a všetky 1 na 0. Doplnok 1 k číslu 01110 je 10001 a 01101 je 10010.
- Teraz pridáme obe čísla doplnkov, t.j. 10001 a 10010;
10001+10010= 1 00011 - Sčítaním oboch čísel dostaneme end-around carry 1. Toto end-around carry pridáme k LSB 00011.
00011+1=00100 - Teraz nájdite doplnok 1 k výsledku 00100, ktorý je konečnou odpoveďou. Doplnok 1 k výsledku 00100 je teda 110111 a pred číslo pridajte záporné znamienko, aby sme mohli identifikovať, že ide o záporné číslo.
Odčítanie pomocou doplnku 1
Toto sú nasledujúce kroky na odčítanie dvoch binárnych čísel pomocou doplnku 1
- V prvom kroku nájdite doplnok 1 subtrahendu.
- Potom pridajte číslo doplnku s menovkou.
- Ak máte prenos, pridajte prenos do jeho LSB. V opačnom prípade zoberte 1 doplnok k výsledku, ktorý bude záporný
Poznámka: Hodnota subtrahendu sa vždy odpočíta od minuendu.
Príklad 1: 10101 - 00111
Vezmeme 1 doplnok subtrahendu 00111, ktorý vyjde 11 000. Teraz ich zrátajte. takže,
10101+11000 = 1 01101.
Vo vyššie uvedenom výsledku dostaneme prenosový bit 1, takže ho pridajte k LSB daného výsledku, t. j. 01101+1=01110, čo je odpoveď.
Príklad 2: 10101 - 10111
Zoberieme doplnok 1 k subtrahendu 10111, ktorý vyjde 01000. Teraz pridajte obe čísla. takže,
10101+01000 = 11101.
Vo vyššie uvedenom výsledku sme nezískali nosný bit. Vypočítajte teda doplnok 1 k výsledku, t. j. 00010, čo je záporné číslo a konečná odpoveď.