logo

Addition og subtraktion ved hjælp af 2's komplement

I vores forrige afsnit lærte vi, hvordan vi kunne udføre aritmetiske operationer såsom addition og subtraktion ved hjælp af 1-komplement. I dette afsnit vil vi lære at udføre disse operationer ved hjælp af 2's komplement.

css kommentar

Tilføjelse ved hjælp af 2's komplement

Der er tre forskellige tilfælde mulige, når vi tilføjer to binære tal ved hjælp af 2's komplement, som er som følger:

Tilfælde 1: Tilføjelse af det positive tal med et negativt tal, når det positive tal har en større størrelse.

Find først 2'erens komplement af det givne negative tal. Opsummer med det givne positive tal. Hvis vi får end-around carry 1, vil tallet være et positivt tal, og carry bit vil blive kasseret, og resterende bits er det endelige resultat.

Eksempel: 1101 og -1001

  1. Find først 2-komplementet af det negative tal 1001. Så for at finde 2-komplementet skal du ændre alle 0 til 1 og alle 1 til 0 eller finde 1-komplementet af tallet 1001. 1-komplementet af tallet 1001 er 0110, og læg 1 til LSB for resultatet 0110. Så 2'erens komplement af nummer 1001 er 0110+1=0111
  2. Tilføj begge tallene, dvs. 1101 og 0111;
    1101+0111=1 0100
  3. Ved at tilføje begge tal får vi ende-om-bære 1. Vi kasserer ende-om-bære. Så tilføjelsen af ​​begge tal er 0100.

Case 2: Tilføjelse af den positive værdi med en negativ værdi, når det negative tal har en højere størrelse.

Tilføj først en positiv værdi med 2'erens komplementværdi af det negative tal. Her findes ingen ende-om-bære. Så vi tager 2'erens komplement til resultatet for at få det endelige resultat.

Bemærk: Resultatet er en negativ værdi.

Eksempel: 1101 og -1110

  1. Find først 2-komplementet af det negative tal 1110. Så for at finde 2-komplementet skal du lægge 1 til LSB for dets 1-komplementværdi 0001.
    0001+1=0010
  2. Tilføj begge tallene, dvs. 1101 og 0010;
    1101+0010= 1111
  3. Find 2'erens komplement til resultatet 1110, der er det endelige resultat. Så 2'erens komplement af resultatet 1110 er 0001, og tilføj et negativt fortegn før tallet, så vi kan identificere, at det er et negativt tal.

Case 3: Tilføjelse af to negative tal

I dette tilfælde skal du først finde 2-komplementet af begge de negative tal, og derefter tilføjer vi begge disse komplementtal. I dette tilfælde vil vi altid få ende-rundt carry, som vil blive tilføjet til LSB, og glemmer det endelige resultat, tager vi 2'erens komplement til resultatet.

Bemærk: Resultatet er en negativ værdi.

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

  1. Find først 2-komplementet af de negative tal 01101 og 01110. Så for at finde 2-komplementet lægger vi 1 til LSB for 1-komplementet af disse tal. 2's komplement til tallet 01110 er 10010, og 01101 er 10011.
  2. Vi tilføjer begge komplementtallene, dvs. 10001 og 10010;
    10010+10011= 100101
  3. Ved at lægge begge tal sammen får vi ende-rundt carry 1. Denne carry kasseres, og det endelige resultat er 2.s komplementet af resultatet 00101. Så 2'erens komplement af resultatet 00101 er 11011, og vi tilføjer en negativ tegn før tallet, så vi kan identificere, at det er et negativt tal.

Subtraktion ved hjælp af 2's komplement

Dette er de følgende trin for at trække to binære tal fra ved hjælp af 2's komplement

  • I det første trin skal du finde 2'erens komplement til subtrahenden.
  • Tilføj komplementnummeret med minuenden.
  • Hvis vi får bæringen ved at tilføje begge tal, så kasserer vi denne bæring, og resultatet er positivt, ellers tager vi 2's komplement af resultatet, som vil være negativt.

Eksempel 1: 10101 - 00111

Vi tager 2's komplement af subtrahend 00111, som er 11001. Nu skal du summere dem. Så,

10101+11001 =1 01110.

I ovenstående resultat får vi carry bit 1. Så vi kasserer denne carry bit og resterende er det endelige resultat og et positivt tal.

Eksempel 2: 10101 - 10111

Vi tager 2's komplement af subtrahend 10111, som kommer ud 01001. Nu tilføjer vi begge numre. Så,

10101+01001 =11110.

I ovenstående resultat fik vi ikke bærebitten. Så beregn 2'erens komplement af resultatet, altså 00010. Det er det negative tal og det endelige svar.