Binárne odčítanie

Dvojková soustava - sčítání a odčítání (Apríl 2019).

Anonim

Binárne odčítanie

Kapitola 2 - Binárna aritmetika


Môžeme odčítať jedno binárne číslo od druhého pomocou štandardných techník prispôsobených pre desiatkové čísla (odčítanie každého páru bitov, zľava doľava, "požičiavanie" podľa potreby z bitov doľava). Ak však môžeme využiť už známu (a ľahšiu) techniku ​​binárneho pridávania na odčítanie, bolo by to lepšie. Ako sme sa práve naučili, môžeme reprezentovať záporné binárne čísla pomocou metódy dvoch doplnkov a negatívneho miesta bitovej hmotnosti. Tu použijeme tieto záporné binárne čísla, aby sme mohli odpočítavať prostredníctvom pridania. Tu je vzorový problém:

 Odčítanie: 7 10 - 5 10 Ekvivalent pridania: 7 10 + (-5 10 ) 

Ak všetko, čo musíme urobiť, je reprezentovať sedem a záporné päť v binárnom (dvojkomplementovanom) formulári, všetko, čo potrebujeme, je tri bity plus bit zápornej hmotnosti:

 pozitívne sedem = 0111 2 negatívne päť = 1011 2 

Teraz ich pridáme:

, 1111 <--- Nosné bity. 0111. + 1011. ------. 10010. |, Zlikvidujte extra bit., Odpoveď = 0010 2 

Keďže sme už definovali naše bitové pole ako tri bity plus bit s negatívnou váhou, piaty bit v odpovedi (1) bude zlikvidovaný, aby sme získali výsledok 0010 2 alebo pozitívnych dvoch, čo je správna odpoveď,

Ďalším spôsobom, ako pochopiť, prečo sme sa zbavili tohto extra bitu, je mať na pamäti, že ľavý kúsok nižšieho čísla má negatívnu váhu, v tomto prípade sa rovná zápornej ôsmej. Keď pridáme tieto dve binárne čísla dohromady, to, čo vlastne robíme s MSB, odčíta MSB nižšieho čísla od MSB horného čísla. Pri odčítaní niekto "nesie" jednu číslicu alebo bit na ďalšiu ľavú miesto.

Pokúsme sa o ďalší príklad, tentoraz s väčšími číslami. Ak chceme pridať -25 10 na 18 10, musí sa najskôr rozhodnúť, aké veľké musí byť naše binárne bitové pole. Aby sme reprezentovali najväčšie číslo (absolútnu hodnotu) v našom probléme, čo je dvadsaťpäť, potrebujeme najmenej päť bitov plus šiesty bit pre bit zápornej hmotnosti. Začnime tým, že zastupujeme pozitívne dvadsaťpäť, potom nájdeme dva doplnky a všetko ich spoja do jednej číslovania:

 +25 10 = 011001 2 (zobrazuje všetkých šesť bitov) Jeden doplnok z 11001 2 = 100110 2 Jeden doplnok + 1 = dva doplnky = 100111 2 -25 10 = 100111 2 

V podstate reprezentujeme záporné dvadsaťpäť pomocou zápornej hmotnosti (šiesty) bit s hodnotou zápornej tridsaťdva plus kladných sedem (binárne 111 2 ).

Teraz predstavujeme pozitívnu osemnásť v binárnej forme, zobrazujúcu všetky šesť bitov:

, 18 10 = 010010 2 ., Teraz ich pridáme a uvidíme, čo získame:., 11 <--- Nosné bity. 100111. + 010010. --------. 111001 
Vzhľadom na to, že v ľavej časti neboli žiadne "extra" bity, nie sú žiadne bitové prvky, ktoré by ste ich mohli zbaviť. Najvzdialenejší bit na odpoveď je 1, čo znamená, že odpoveď je negatívna, v druhej podobe doplnku, ako by mala byť. Prepočítaním odpovede na desatinnú formu zo súčtu všetkých bitov v čase ich príslušných hodnôt hmotnosti získame:
 (1 x -32 10 ) + (1 x 16 10 ) + (1 x 8 10 ) + (1 x 1 10 ) = -7 10 
Vlastne -7 10 je správny súčet -25 10 a 18 10 .