logo

Yhteen- ja vähennyslasku käyttäen 2:n komplementtia

Edellisessä osiossa opimme, kuinka voimme suorittaa aritmeettisia operaatioita, kuten yhteen- ja vähennyslaskua käyttämällä ykkösen komplementtia. Tässä osiossa opimme suorittamaan nämä toiminnot käyttämällä 2:n komplementtia.

Etsi kartalta c++

Lisäys 2:n komplementilla

On kolme eri tapausta mahdollista, kun lisäämme kaksi binaarilukua käyttämällä 2:n komplementtia, joka on seuraava:

Tapaus 1: Positiivisen luvun lisääminen negatiiviseen numeroon, kun positiivisen luvun suuruus on suurempi.

Etsi aluksi annetun negatiivisen luvun 2:n komplementti. Summa annetulla positiivisella luvulla. Jos saamme lopun siirtoarvon 1, luku on positiivinen luku ja siirtobitti hylätään ja loput bitit ovat lopputulos.

Esimerkki: 1101 ja -1001

  1. Etsi ensin negatiivisen luvun 1001 2:n komplementti. Joten luvun 2:n komplementin löytämiseksi muuta kaikki 0:t 1:ksi ja kaikki 1:t 0:ksi tai etsi luvun 1001 1:n komplementti. Numeron 1001 1:n komplementti on 0110, ja lisää 1 tuloksen 0110 LSB:hen. Joten luvun 1001 2:n komplementti on 0110+1=0111
  2. Lisää molemmat numerot, eli 1101 ja 0111;
    1101+0111=1 0100
  3. Lisäämällä molemmat numerot, saamme lopun siirto 1. Hylkäämme lopun siirto. Joten molempien numeroiden yhteenlaskettu summa on 0100.

Tapaus 2: Positiivisen arvon lisääminen negatiiviseen arvoon, kun negatiivinen luku on suurempi.

Lisää aluksi positiivinen arvo negatiivisen luvun 2:n komplementtiarvoon. Täällä ei löydy lopullista kantamista. Joten otamme tuloksen 2:n komplementin saadaksemme lopullisen tuloksen.

Huomautus: Resultantti on negatiivinen arvo.

Esimerkki: 1101 ja -1110

  1. Etsi ensin negatiivisen luvun 1110 2:n komplementti. Joten saadaksesi 2:n komplementin lisää 1 sen 1:n komplementtiarvon 0001 LSB:hen.
    0001+1=0010
  2. Lisää molemmat numerot, eli 1101 ja 0010;
    1101+0010= 1111
  3. Etsi tuloksen 1110 2:n komplementti, joka on lopputulos. Tuloksen 1110 2:n komplementti on siis 0001, ja lisää luvun eteen negatiivinen etumerkki, jotta voimme tunnistaa sen olevan negatiivinen luku.

Tapaus 3: Kahden negatiivisen luvun lisääminen

Tässä tapauksessa etsi ensin molempien negatiivisten lukujen 2:n komplementti ja sitten lisäämme nämä molemmat komplementtiluvut. Tässä tapauksessa saamme aina lopputuloksen, joka lisätään LSB:hen, ja unohdamme lopputuloksen, otamme tuloksesta the2:n komplementin.

Huomautus: Resultantti on negatiivinen arvo.

Esimerkki: -1101 ja -1110 viisibittisessä rekisterissä

  1. Ensin etsitään negatiivisten lukujen 01101 ja 01110 2:n komplementti. Joten 2:n komplementin löytämiseksi lisäämme 1 näiden lukujen 1:n komplementin LSB:hen. 2:n luvun 01110 komplementti on 10010 ja 01101 on 10011.
  2. Lisäämme molemmat komplementtiluvut, eli 10001 ja 10010;
    10010+10011= 1 00101
  3. Lisäämällä molemmat luvut saamme lopputuloksen 1. Tämä siirto hylätään ja lopputuloksena on tuloksen 00101 2:n komplementti. Joten tuloksen 00101 2:n komplementti on 11011 ja lisäämme negatiivisen merkki ennen numeroa, jotta voimme tunnistaa, että se on negatiivinen luku.

Vähennys 2:n komplementilla

Nämä ovat seuraavat vaiheet kahden binääriluvun vähentämiseksi käyttämällä 2:n komplementtia

  • Etsi ensimmäisessä vaiheessa aliosan 2:n komplementti.
  • Lisää komplementtinumero minuendin kanssa.
  • Jos saamme kantomäärän lisäämällä molemmat luvut, hylkäämme tämän kuljetuksen ja tulos on positiivinen, muuten otetaan tuloksen 2:n komplementti, joka on negatiivinen.

Esimerkki 1: 10101 - 00111

Otetaan 2:n komplementti aliarvosta 00111, joka on 11001. Summaa ne nyt. Niin,

10101+11001 =1 01110.

Yllä olevassa tuloksessa saamme siirtobitin 1. Joten hylkäämme tämän siirtobitin ja jäljelle jää lopputulos ja positiivinen luku.

Esimerkki 2: 10101-10111

Otetaan 2:n komplementti aliosasta 10111, josta tulee 01001. Nyt lisätään molemmat luvut. Niin,

10101+01001 =11110.

Yllä olevassa tuloksessa emme saaneet kantopalaa. Laske siis tuloksen 2:n komplementti, eli 00010. Se on negatiivinen luku ja lopullinen vastaus.