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
- 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
- Sumeu els dos nombres, és a dir, 1101 i 0111;
1101+0111=1 0100 - 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
- 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 - Sumeu els dos nombres, és a dir, 1101 i 0010;
1101+0010= 1111 - 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
- 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.
- Sumem els dos nombres de complement, és a dir, 10001 i 10010;
10010+10011=1 00101 - 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.