V našej predchádzajúcej časti sme sa naučili, ako môžeme vykonávať aritmetické operácie, ako je sčítanie a odčítanie pomocou doplnku 1. V tejto časti sa naučíme vykonávať tieto operácie pomocou doplnku 2.
c náhodné číslo
Sčítanie pomocou doplnku 2
Keď sčítame dve binárne čísla pomocou doplnku 2, sú možné tri rôzne prípady, a to takto:
Prípad 1: Sčítanie kladného čísla so záporným číslom, keď má kladné číslo väčšiu veľkosť.
Najprv nájdite dvojkový doplnok daného záporného čísla. Sčítajte s daným kladným číslom. Ak dostaneme end-around carry 1, potom číslo bude kladné číslo a bit carry bude vyradený a zostávajúce bity sú konečným výsledkom.
Príklad: 1101 a -1001
- Najprv nájdite dvojkový doplnok záporného čísla 1001. Ak teda chcete nájsť dvojkový doplnok, zmeňte všetky 0 na 1 a všetky 1 na 0 alebo nájdite jedničkový doplnok k číslu 1001. Doplnok 1 k číslu 1001 je 0110 a pridajte 1 k LSB výsledku 0110. Takže dvojkový doplnok čísla 1001 je 0110+1=0111
- Pridajte obe čísla, t.j. 1101 a 0111;
1101+0111=1 0100 - Sčítaním oboch čísel dostaneme end-around carry 1. End-around carry zahodíme. Takže súčet oboch čísel je 0100.
Prípad 2: Sčítanie kladnej hodnoty so zápornou hodnotou, keď záporné číslo má vyššiu veľkosť.
Na začiatku pridajte kladnú hodnotu s hodnotou doplnku 2 záporného čísla. Tu sa nenašiel žiadny end-around prenos. Takže vezmeme dvojkový doplnok výsledku, aby sme získali konečný výsledok.
Poznámka: Výsledkom je záporná hodnota.
Príklad: 1101 a -1110
- Najprv nájdite dvojkový doplnok záporného čísla 1110. Ak teda chcete nájsť dvojkový doplnok, pridajte 1 k LSB s hodnotou doplnku 1 0001.
0001+1=0010 - Pridajte obe čísla, t.j. 1101 a 0010;
1101+0010= 1111 - Nájdite dvojkový doplnok k výsledku 1110, ktorý je konečným výsledkom. Doplnok 2 k výsledku 1110 je teda 0001 a pred číslo pridajte 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 dvojkový doplnok oboch záporných čísel a potom spočítame obe tieto čísla doplnkov. V tomto prípade vždy dostaneme end-around carry, ktorý bude pridaný do LSB a zabudneme na konečný výsledok, vezmeme doplnenie výsledku 2.
Poznámka: Výsledkom je záporná hodnota.
Príklad: -1101 a -1110 v päťbitovom registri
- Najprv nájdite dvojkový doplnok záporných čísel 01101 a 01110. Aby sme našli dvojkový doplnok, pridáme 1 k LSB doplnku 1 týchto čísel. Doplnok 2 k číslu 01110 je 10010 a 01101 je 10011.
- Sčítame obe čísla doplnkov, t.j. 10001 a 10010;
10010+10011= 1 00101 - Sčítaním oboch čísel dostaneme end-around carry 1. Toto carry sa zahodí a konečným výsledkom je 2.s doplnok výsledku 00101. Čiže, dvojkový doplnok k výsledku 00101 je 11011 a pridáme záporný znak pred číslom, aby sme vedeli identifikovať, že ide o záporné číslo.
Odčítanie pomocou dvojkového doplnku
Toto sú nasledujúce kroky na odčítanie dvoch binárnych čísel pomocou doplnku 2
- V prvom kroku nájdite dvojkový doplnok subtrahendu.
- Pridajte číslo doplnku s menovkou.
- Ak získame prenos sčítaním oboch čísel, potom tento prenos zahodíme a výsledok je kladný, inak zoberieme dvojkový doplnok výsledku, ktorý bude záporný.
Príklad 1: 10101 - 00111
Vezmeme dvojkový doplnok subtrahendu 00111, čo je 11001. Teraz ich spočítaj. takže,
10101+11001 = 1 01110.
Vo vyššie uvedenom výsledku dostaneme bit prenosu 1. Tento bit prenosu teda zahodíme a zostane konečný výsledok a kladné číslo.
Príklad 2: 10101 - 10111
Vezmeme dvojkový doplnok subtrahendu 10111, ktorý vyjde 01001. Teraz pridáme obe čísla. takže,
10101+01001 =11110.
Vo vyššie uvedenom výsledku sme nezískali nosný bit. Vypočítajte teda dvojkový doplnok výsledku, t.j. 00010. Je to záporné číslo a konečná odpoveď.