I vores forrige afsnit lærte vi om forskellige komplementer såsom 1's komplement, 2'er komplement, 9'er komplement og 10'er komplement osv.. I dette afsnit vil vi lære at udføre de regneoperationer som addition og subtraktion ved hjælp af 1'er komplement. Vi kan udføre addition og subtraktion ved hjælp af 1'er, 2'er, 9'er og 10'er komplement.
Tilføjelse ved hjælp af 1's komplement
Der er tre forskellige tilfælde mulige, når vi tilføjer to binære tal, 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.
Beregn indledningsvis 1-komplementet af det givne negative tal. Opsummer med det givne positive tal. Hvis vi får end-around carry 1, bliver den tilføjet til LSB.
Eksempel: 1101 og -1001
- Find først 1-komplementet af det negative tal 1001. Så for at finde 1-komplement skal du ændre alle 0 til 1 og alle 1 til 0. 1-komplementet af tallet 1001 er 0110.
- Tilføj nu begge tallene, dvs. 1101 og 0110;
1101+0110=1 0011 - Ved at tilføje begge tal får vi ende-om-bære 1. Vi tilføjer denne ende-om-bær til LSB af 0011.
0011+1=0100
Tilfælde 2: Tilføjelse af en positiv værdi med en negativ værdi, hvis det negative tal har en højere størrelse.
Beregn først 1'erens komplement af den negative værdi. Sum det med et positivt tal. I dette tilfælde fik vi ikke den ende-runde carry. Så tag 1'erens komplement til resultatet for at få det endelige resultat.
Bemærk: Resultatet er en negativ værdi.
Eksempel: 1101 og -1110
- Find først 1's komplement af det negative tal 1110. Så for at finde 1's komplement ændrer vi alle 0 til 1, og alle 1 til 0. 1's komplement af tallet 1110 er 0001.
- Tilføj nu begge tallene, dvs. 1101 og 0001;
1101+0001= 1110 - Find nu 1'erens komplement til resultatet 1110, som er det endelige resultat. Så 1'erens komplement af resultatet 1110 er 0001, og vi tilføjer 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 1-komplementet af begge de negative tal, og derefter tilføjer vi begge disse komplementtal. I dette tilfælde får vi altid end-around carry, som bliver tilføjet til LSB, og for at få det endelige resultat tager vi 1'erens komplement til resultatet.
Bemærk: Resultatet er en negativ værdi.
Eksempel: -1101 og -1110 i fem-bit register
- Find først 1's komplementet af de negative tal 01101 og 01110. Så for at finde 1's komplement ændrer vi alle 0 til 1, og alle 1 til 0. 1's komplement af tallet 01110 er 10001, og 01101 er 10010.
- Nu tilføjer vi begge komplementtallene, dvs. 10001 og 10010;
10001+10010= 100011 - Ved at tilføje begge numre får vi ende-om-bære 1. Vi tilføjer denne end-around-bære til LSB af 00011.
00011+1=00100 - Find nu 1'erens komplement til resultatet 00100, der er det endelige svar. Så 1'erens komplement af resultatet 00100 er 110111, og tilføj et negativt fortegn før tallet, så vi kan identificere, at det er et negativt tal.
Subtraktion ved hjælp af 1's komplement
Dette er de følgende trin for at trække to binære tal fra ved hjælp af 1's komplement
- I det første trin skal du finde 1'erens komplement til subtrahenden.
- Tilføj derefter komplementnummeret med minuenden.
- Hvis du har en carry, skal du tilføje den til dens LSB. Ellers tag 1's komplement til resultatet, som vil være negativt
Bemærk: Subtrahend-værdien trækkes altid fra minuend.
Eksempel 1: 10101 - 00111
Vi tager 1's komplement af subtrahend 00111, som kommer ud 11000. Nu, summer dem. Så,
10101+11000 =1 01101.
I ovenstående resultat får vi bærebit 1, så læg denne til LSB for et givet resultat, dvs. 01101+1=01110, som er svaret.
Eksempel 2: 10101 - 10111
Vi tager 1's komplement af subtrahend 10111, som kommer ud 01000. Tilføj nu begge numre. Så,
10101+01000 =11101.
I ovenstående resultat fik vi ikke bærebiten. Så beregn 1'erens komplement af resultatet, dvs. 00010, som er det negative tal og det endelige svar.