logo

Adunarea și scăderea folosind complementul la 2

În secțiunea anterioară, am învățat cum am putea efectua operații aritmetice precum adunarea și scăderea folosind complementul la 1. În această secțiune, vom învăța să efectuăm aceste operații folosind complementul 2.

găsiți în șirul c++

Adunarea folosind complementul 2

Există trei cazuri diferite posibile când adunăm două numere binare folosind complementul 2, care este după cum urmează:

Cazul 1: Adunarea numărului pozitiv cu un număr negativ atunci când numărul pozitiv are o magnitudine mai mare.

Găsiți inițial complementul 2 al numărului negativ dat. Însumați cu numărul pozitiv dat. Dacă obținem transportul final 1, atunci numărul va fi un număr pozitiv, iar bitul de transport va fi aruncat, iar biții rămași sunt rezultatul final.

Exemplu: 1101 și -1001

  1. Mai întâi, găsiți complementul 2 al numărului negativ 1001. Deci, pentru a găsi complementul 2, schimbați toate 0 la 1 și toate 1 la 0 sau găsiți complementul 1 al numărului 1001. Complementul 1 al numărului 1001 este 0110 și adăugați 1 la LSB al rezultatului 0110. Deci complementul 2 al numărului 1001 este 0110+1=0111
  2. Adăugați ambele numere, adică 1101 și 0111;
    1101+0111=1 0100
  3. Adunând ambele numere, obținem transportul final 1. Renunțăm la transportul final. Deci, adunarea ambelor numere este 0100.

Cazul 2: Adunarea valorii pozitive cu o valoare negativă atunci când numărul negativ are o magnitudine mai mare.

Inițial, adăugați o valoare pozitivă cu valoarea complementului 2 a numărului negativ. Aici, nu se găsește niciun transport final. Deci, luăm complementul 2 al rezultatului pentru a obține rezultatul final.

Notă: rezultatul este o valoare negativă.

Exemplu: 1101 și -1110

  1. Mai întâi, găsiți complementul 2 al numărului negativ 1110. Așadar, pentru a găsi complementul 2, adăugați 1 la LSB a valorii complementului său 1 0001.
    0001+1=0010
  2. Adăugați ambele numere, adică 1101 și 0010;
    1101+0010= 1111
  3. Aflați complementul 2 al rezultatului 1110 care este rezultatul final. Deci, complementul 2 al rezultatului 1110 este 0001 și adăugați un semn negativ înaintea numărului, astfel încât să putem identifica că este un număr negativ.

Cazul 3: Adunarea a două numere negative

În acest caz, mai întâi, găsiți complementul 2 al ambelor numere negative și apoi vom adăuga ambele numere complementare. În acest caz, vom obține întotdeauna transportul final, care va fi adăugat la LSB și, uitând rezultatul final, vom lua complementul lui 2 a rezultatului.

Notă: rezultatul este o valoare negativă.

Exemplu: -1101 și -1110 în registru de cinci biți

  1. Mai întâi găsiți complementul 2 al numerelor negative 01101 și 01110. Deci, pentru a găsi complementul 2, adăugăm 1 la LSB al complementului 1 al acestor numere. Complementul 2 al numărului 01110 este 10010, iar 01101 este 10011.
  2. Adăugăm ambele numere de complement, adică 10001 și 10010;
    10010+10011= 1 00101
  3. Adunând ambele numere, obținem sfârșitul în jurul valorii de purtare 1. Această purtare este eliminată și rezultatul final este complementul 2.s al rezultatului 00101. Deci, complementul 2 al rezultatului 00101 este 11011 și adăugăm un negativ semnează înaintea numărului astfel încât să putem identifica că este un număr negativ.

Scăderea folosind complementul la 2

Aceștia sunt următorii pași pentru a scădea două numere binare folosind complementul 2

  • În primul pas, găsiți complementul 2 al subtraendului.
  • Adăugați numărul complementului cu minuend.
  • Dacă obținem purtarea adunând ambele numere, atunci renunțăm la această purtare și rezultatul este pozitiv, altfel luăm complementul 2 al rezultatului care va fi negativ.

Exemplul 1: 10101 - 00111

Luăm complementul 2 al subtraendului 00111, care este 11001. Acum, însumăm-le. Asa de,

10101+11001 =1 01110.

În rezultatul de mai sus, obținem bitul de transport 1. Așa că aruncăm acest bit de transport și rămâne rezultatul final și un număr pozitiv.

Exemplul 2: 10101 - 10111

Luăm complementul 2 al subtraendului 10111, care rezultă 01001. Acum, adunăm ambele numere. Asa de,

10101+01001 =11110.

În rezultatul de mai sus, nu am primit bitul de transport. Deci, calculați complementul 2 al rezultatului, adică 00010. Este numărul negativ și răspunsul final.