logo

Addisjon og subtraksjon med 2-komplement

I forrige avsnitt lærte vi hvordan vi kunne utføre aritmetiske operasjoner som addisjon og subtraksjon ved å bruke 1s komplement. I denne delen vil vi lære å utføre disse operasjonene ved å bruke 2s komplement.

java lang til streng

Addisjon med 2-komplement

Det er tre forskjellige tilfeller mulig når vi legger til to binære tall ved å bruke 2s komplement, som er som følger:

Tilfelle 1: Addisjon av det positive tallet med et negativt tall når det positive tallet har en større størrelse.

Finn først 2-komplementet til det gitte negative tallet. Oppsummer med det gitte positive tallet. Hvis vi får enden rundt bære 1, vil tallet være et positivt tall og bærebiten vil bli forkastet og gjenværende biter er det endelige resultatet.

Eksempel: 1101 og -1001

  1. Finn først 2-komplementet til det negative tallet 1001. Så, for å finne 2-komplementet, endre alle 0 til 1 og alle 1 til 0 eller finn 1-komplementet til tallet 1001. 1-komplementet til tallet 1001 er 0110, og legg til 1 til LSB for resultatet 0110. Så 2-ens komplement av nummer 1001 er 0110+1=0111
  2. Legg til begge tallene, dvs. 1101 og 0111;
    1101+0111=1 0100
  3. Ved å legge til begge tallene får vi ende-rundt bære 1. Vi forkaster ende-rundt bære. Så tillegget av begge tallene er 0100.

Tilfelle 2: Addering av den positive verdien med en negativ verdi når det negative tallet har en høyere størrelse.

Til å begynne med legger du til en positiv verdi med 2-ens komplementverdi til det negative tallet. Her finnes ingen ende-rundt bære. Så vi tar 2-er komplementet til resultatet for å få det endelige resultatet.

Merk: Resultatet er en negativ verdi.

Eksempel: 1101 og -1110

  1. Finn først 2-komplementet til det negative tallet 1110. Så, for å finne 2-komplementet, legg til 1 til LSB for 1-komplementverdien 0001.
    0001+1=0010
  2. Legg til begge tallene, dvs. 1101 og 0010;
    1101+0010= 1111
  3. Finn 2-er-komplementet av resultatet 1110 som er det endelige resultatet. Så 2-ens komplement til resultatet 1110 er 0001, og legg til et negativt fortegn før tallet slik at vi kan identifisere at det er et negativt tall.

Tilfelle 3: Addisjon av to negative tall

I dette tilfellet, finn først 2-komplementet til begge de negative tallene, og så legger vi til begge disse komplementtallene. I dette tilfellet vil vi alltid få ende-rundt-bæringen, som vil bli lagt til LSB, og glemmer det endelige resultatet, tar vi 2s komplement av resultatet.

Merk: Resultatet er en negativ verdi.

Eksempel: -1101 og -1110 i fem-bits register

  1. Finn først 2-komplementet til de negative tallene 01101 og 01110. Så for å finne 2-komplementet legger vi til 1 til LSB for 1-komplementet til disse tallene. 2s komplement av tallet 01110 er 10010, og 01101 er 10011.
  2. Vi legger til begge komplementtallene, dvs. 10001 og 10010;
    10010+10011= 100101
  3. Ved å legge til begge tallene får vi ende-rundt bære 1. Denne bæren blir forkastet og sluttresultatet er 2.s komplementet til resultatet 00101. Så 2s komplementet av resultatet 00101 er 11011, og vi legger til et negativt tegn før tallet slik at vi kan identifisere at det er et negativt tall.

Subtraksjon med 2-komplement

Dette er de følgende trinnene for å subtrahere to binære tall ved å bruke 2s komplement

  • I det første trinnet finner du 2-er-komplementet til subtrahenden.
  • Legg til komplementnummeret med minuend.
  • Hvis vi får bæret ved å legge til begge tallene, så forkaster vi denne bæren og resultatet er positivt, ellers ta 2s komplement av resultatet som vil være negativt.

Eksempel 1: 10101 - 00111

Vi tar 2s komplement av subtrahend 00111, som er 11001. Nå, summerer dem. Så,

10101+11001 =1 01110.

I resultatet ovenfor får vi bærebiten 1. Så vi forkaster denne bærebiten og gjenværende er det endelige resultatet og et positivt tall.

Eksempel 2: 10101 - 10111

Vi tar 2s komplement av subtrahend 10111, som kommer ut 01001. Nå legger vi til begge tallene. Så,

10101+01001 =11110.

I resultatet ovenfor fikk vi ikke bærebiten. Så beregn 2'erens komplement av resultatet, dvs. 00010. Det er det negative tallet og det endelige svaret.