logo

Sumes i restes utilitzant el complement a 2

A la nostra secció anterior, vam aprendre com podríem realitzar operacions aritmètiques com sumes i restes utilitzant el complement a 1. En aquesta secció, aprendrem a realitzar aquestes operacions utilitzant el complement a 2.

índex de cadena de Java

Suma utilitzant el complement de 2

Hi ha tres casos diferents possibles quan sumem dos nombres binaris utilitzant el complement a 2, que és el següent:

Cas 1: Suma del nombre positiu amb un nombre negatiu quan el nombre positiu té una magnitud més gran.

Trobeu inicialment el complement a 2 del nombre negatiu donat. Suma amb el nombre positiu donat. Si obtenim el transport final 1, el nombre serà un nombre positiu i el bit de transport es descartarà i els bits restants són el resultat final.

Exemple: 1101 i -1001

  1. Primer, trobeu el complement a 2 del nombre negatiu 1001. Per tant, per trobar el complement a 2, canvieu tot 0 a 1 i tot 1 a 0 o trobeu el complement a 1 del nombre 1001. El complement a 1 del nombre 1001 és 0110 i afegeix 1 al LSB del resultat 0110. Així, el complement a 2 del número 1001 és 0110+1=0111
  2. Sumeu els dos nombres, és a dir, 1101 i 0111;
    1101+0111=1 0100
  3. En sumar els dos nombres, obtenim el transport final 1. Descartem el transport final. Per tant, la suma dels dos nombres és 0100.

Cas 2: Suma del valor positiu amb un valor negatiu quan el nombre negatiu té una magnitud superior.

Inicialment, afegiu un valor positiu amb el valor del complement a 2 del nombre negatiu. Aquí, no es troba cap transport final. Per tant, prenem el complement de 2 del resultat per obtenir el resultat final.

Nota: la resultant és un valor negatiu.

Exemple: 1101 i -1110

  1. Primer, trobeu el complement a 2 del nombre negatiu 1110. Per tant, per trobar el complement a 2, sumeu 1 al LSB del seu valor de complement a 1 0001.
    0001+1=0010
  2. Sumeu els dos nombres, és a dir, 1101 i 0010;
    1101+0010= 1111
  3. Trobeu el complement a 2 del resultat 1110 que és el resultat final. Per tant, el complement a 2 del resultat 1110 és 0001, i afegiu un signe negatiu abans del nombre perquè puguem identificar que és un nombre negatiu.

Cas 3: Suma de dos nombres negatius

En aquest cas, primer, trobeu el complement a 2 dels dos nombres negatius i després sumarem aquests dos nombres de complement. En aquest cas, sempre obtindrem el transport final, que s'afegirà a l'LSB, i oblidant-nos del resultat final, agafarem el complement de 2 del resultat.

Nota: la resultant és un valor negatiu.

Exemple: -1101 i -1110 en registre de cinc bits

  1. En primer lloc, trobeu el complement a 2 dels nombres negatius 01101 i 01110. Per tant, per trobar el complement a 2, afegim 1 al LSB del complement a l'1 d'aquests nombres. El complement a 2 del nombre 01110 és 10010 i 01101 és 10011.
  2. Sumem els dos nombres de complement, és a dir, 10001 i 10010;
    10010+10011=1 00101
  3. En sumar els dos nombres, obtenim l'extrem al voltant de l'aportació 1. Aquesta transferència es descarta i el resultat final és el complement 2.s del resultat 00101. Per tant, el complement 2 del resultat 00101 és 11011 i afegim un negatiu. signe abans del nombre perquè puguem identificar que és un nombre negatiu.

Resta utilitzant el complement a 2

Aquests són els passos següents per restar dos nombres binaris utilitzant el complement a 2

  • En el primer pas, trobeu el complement a 2 del subtraend.
  • Afegiu el número de complement amb el minuend.
  • Si aconseguim l'aportació sumant els dos nombres, aleshores descartem aquest acarreament i el resultat és positiu, sinó prenem el complement a 2 del resultat que serà negatiu.

Exemple 1: 10101 - 00111

Prenem el complement a 2 del subtraend 00111, que és 11001. Ara, sumeu-los. Tan,

10101+11001=1 01110.

En el resultat anterior, obtenim el bit de transport 1. Així que descartem aquest bit de transport i el restant és el resultat final i un nombre positiu.

Exemple 2: 10101-10111

Prenem el complement de 2 del subtraend 10111, que surt 01001. Ara, sumem els dos nombres. Tan,

10101+01001 =11110.

En el resultat anterior, no vam obtenir el bit de transport. Calculeu, doncs, el complement a 2 del resultat, és a dir, 00010. És el nombre negatiu i la resposta final.