logo

Zbrajanje i oduzimanje pomoću komplementa 2

U našem prethodnom odjeljku naučili smo kako možemo izvoditi aritmetičke operacije kao što su zbrajanje i oduzimanje koristeći komplement 1. U ovom odjeljku naučit ćemo izvoditi ove operacije pomoću komplementa 2.

pronaći u nizu c++

Zbrajanje pomoću komplementa 2

Postoje tri različita moguća slučaja kada zbrajamo dva binarna broja pomoću komplementa 2, a to je kako slijedi:

Slučaj 1: Zbrajanje pozitivnog broja s negativnim brojem kada pozitivni broj ima veću veličinu.

Prvo pronađite komplement 2 zadanog negativnog broja. Zbrojite sa zadanim pozitivnim brojem. Ako dobijemo end-around prijenos 1 tada će broj biti pozitivan broj i prijenosni bit će biti odbačen, a preostali bitovi su konačni rezultat.

Primjer: 1101 i -1001

  1. Prvo pronađite komplement 2 negativnog broja 1001. Dakle, da biste pronašli komplement 2, promijenite sve 0 u 1 i sve 1 u 0 ili pronađite komplement 1 broja 1001. Komplement 1 broja 1001 je 0110, a dodajte 1 LSB-u rezultata 0110. Dakle, komplement 2 broja 1001 je 0110+1=0111
  2. Zbrojite oba broja, tj. 1101 i 0111;
    1101+0111=1 0100
  3. Zbrajanjem oba broja dobivamo end-around prijenos 1. End-around prijenos odbacujemo. Dakle, zbrajanje oba broja je 0100.

Slučaj 2: Zbrajanje pozitivne vrijednosti s negativnom vrijednošću kada negativni broj ima veću veličinu.

U početku dodajte pozitivnu vrijednost s vrijednošću komplementa 2 negativnog broja. Ovdje nije pronađeno prijenos oko kraja. Dakle, uzimamo komplement 2 rezultata da dobijemo konačni rezultat.

Napomena: Rezultat je negativna vrijednost.

Primjer: 1101 i -1110

  1. Prvo pronađite komplement dvojke negativnog broja 1110. Dakle, za pronalaženje komplementa dvojke dodajte 1 LSB-u njegove vrijednosti komplementa jedinice 0001.
    0001+1=0010
  2. Zbrojite oba broja, tj. 1101 i 0010;
    1101+0010= 1111
  3. Nađite komplement 2 rezultata 1110 koji je konačni rezultat. Dakle, komplement 2 rezultata 1110 je 0001 i dodajte negativan predznak ispred broja kako bismo mogli identificirati da je to negativan broj.

Slučaj 3: Zbrajanje dvaju negativnih brojeva

U ovom slučaju, prvo pronađite komplement 2 za oba negativna broja, a zatim ćemo zbrojiti oba ova komplementna broja. U ovom slučaju, uvijek ćemo dobiti end-around prijenos, koji će biti dodan LSB-u, a zaboravimo konačni rezultat, uzet ćemo komplement rezultata the2.

Napomena: Rezultat je negativna vrijednost.

Primjer: -1101 i -1110 u pet-bitnom registru

  1. Najprije pronađite komplement 2 negativnih brojeva 01101 i 01110. Dakle, da bismo pronašli komplement 2, dodajemo 1 LSB-u komplementa 1 ovih brojeva. Komplement 2 broja 01110 je 10010, a 01101 je 10011.
  2. Zbrajamo oba komplementna broja, tj. 10001 i 10010;
    10010+10011= 1 00101
  3. Zbrajanjem oba broja, dobivamo end-around prijenos 1. Ovaj prijenos se odbacuje i konačni rezultat je komplement 2.s rezultata 00101. Dakle, komplement 2 rezultata 00101 je 11011, a mi dodajemo negativan znak ispred broja kako bismo mogli prepoznati da se radi o negativnom broju.

Oduzimanje pomoću komplementa 2

Ovo su sljedeći koraci za oduzimanje dva binarna broja pomoću komplementa 2

  • U prvom koraku pronađite komplement 2 subtrahenda.
  • Zbrojite komplementni broj s umanjenicom.
  • Ako prijenos dobijemo zbrajanjem oba broja, tada odbacujemo ovaj prijenos i rezultat je pozitivan, inače uzimamo komplement 2 rezultata koji će biti negativan.

Primjer 1: 10101 - 00111 (prikaz, stručni).

Uzimamo komplement 2 od subtrahenda 00111, što je 11001. Sada ih zbrojite. Tako,

10101+11001 =1 01110.

U gornjem rezultatu dobivamo prijenosni bit 1. Dakle, odbacujemo ovaj prijenosni bit i ostaje konačni rezultat i pozitivan broj.

Primjer 2: 10101 - 10111 (prikaz, stručni).

Uzimamo komplement 2 od subtrahenda 10111, što daje 01001. Sada zbrajamo oba broja. Tako,

10101+01001 =11110.

U gornjem rezultatu, nismo dobili prijenosni bit. Dakle, izračunajte komplement 2 rezultata, tj. 00010. To je negativan broj i konačni odgovor.