In onze vorige sectie hebben we geleerd over verschillende complementen, zoals het 1-complement, 2-complement, 9-complement en 10-complement, enz.. In deze sectie zullen we leren de rekenkundige bewerkingen uit te voeren, zoals optellen en aftrekken, met behulp van het 1-complement. We kunnen optellen en aftrekken met behulp van de complementen 1, 2, 9 en 10.
Optelling met behulp van 1-complement
Er zijn drie verschillende gevallen mogelijk wanneer we twee binaire getallen toevoegen, die als volgt zijn:
Geval 1: Optelling van het positieve getal met een negatief getal wanneer het positieve getal een grotere omvang heeft.
Bereken eerst het 1-complement van het gegeven negatieve getal. Tel op met het gegeven positieve getal. Als we de end-around carry 1 krijgen, wordt deze toegevoegd aan de LSB.
Voorbeeld: 1101 en -1001
- Zoek eerst het 1-complement van het negatieve getal 1001. Dus, om het 1-complement te vinden, verander je alle 0 in 1 en alle 1 in 0. Het 1-complement van het getal 1001 is 0110.
- Voeg nu beide nummers toe, dat wil zeggen 1101 en 0110;
1101+0110=1 0011 - Door beide getallen op te tellen, krijgen we de end-around carry 1. We voegen deze end-around carry toe aan de LSB van 0011.
0011+1=0100
Geval 2: Een positieve waarde optellen bij een negatieve waarde als het negatieve getal een hogere grootte heeft.
Bereken in eerste instantie het 1-complement van de negatieve waarde. Tel het op met een positief getal. In dit geval hebben we de end-around carry niet gekregen. Neem dus het 1-complement van het resultaat om het eindresultaat te krijgen.
Opmerking: de resultante is een negatieve waarde.
Voorbeeld: 1101 en -1110
- Zoek eerst het 1-complement van het negatieve getal 1110. Dus om het 1-complement te vinden, veranderen we alle 0 in 1, en alle 1 in 0. Het 1-complement van het getal 1110 is 0001.
- Voeg nu beide cijfers toe, dat wil zeggen 1101 en 0001;
1101+0001= 1110 - Zoek nu het 1-complement van het resultaat 1110 dat het eindresultaat is. Het 1-complement van het resultaat 1110 is dus 0001, en we voegen een negatief teken toe vóór het getal, zodat we kunnen vaststellen dat het een negatief getal is.
Geval 3: Optelling van twee negatieve getallen
In dit geval zoeken we eerst het 1-complement van beide negatieve getallen, en dan tellen we deze beide complementgetallen bij elkaar op. In dit geval krijgen we altijd de end-around carry, die wordt toegevoegd aan de LSB, en om het eindresultaat te krijgen, nemen we het 1-complement van het resultaat.
Opmerking: de resultante is een negatieve waarde.
Voorbeeld: -1101 en -1110 in vijf-bits register
- Zoek eerst het 1-complement van de negatieve getallen 01101 en 01110. Dus om het 1-complement te vinden, veranderen we alle 0 in 1, en alle 1 in 0. Het 1-complement van het getal 01110 is 10001, en 01101 is 10010.
- Nu voegen we beide complementnummers toe, dat wil zeggen 10001 en 10010;
10001+10010= 1 00011 - Door beide getallen op te tellen, krijgen we de end-around carry 1. We voegen deze end-around carry toe aan de LSB van 00011.
00011+1=00100 - Zoek nu het 1-complement van het resultaat 00100 dat het uiteindelijke antwoord is. Het 1-complement van het resultaat 00100 is dus 110111, en voeg een negatief teken toe vóór het getal, zodat we kunnen vaststellen dat het een negatief getal is.
Aftrekken met behulp van het 1-complement
Dit zijn de volgende stappen om twee binaire getallen af te trekken met behulp van het 1-complement
- Zoek in de eerste stap het 1-complement van de aftrekker.
- Voeg vervolgens het complementnummer toe met de minteken.
- Als je een carry hebt, voeg je de carry toe aan de LSB. Neem anders het 1-complement van het resultaat, dat negatief zal zijn
Opmerking: de aftrekkerwaarde wordt altijd afgetrokken van het minuend.
Voorbeeld 1: 10101 - 00111
We nemen het 1-complement van aftrekker 00111, wat uitkomt op 11000. Tel ze nu bij elkaar op. Dus,
10101+11000 =1 01101.
In het bovenstaande resultaat krijgen we de carry-bit 1, dus voeg dit toe aan de LSB van een bepaald resultaat, d.w.z. 01101+1=01110, wat het antwoord is.
Voorbeeld 2: 10101 - 10111
We nemen het 1-complement van aftrekker 10111, wat uitkomt op 01000. Voeg nu beide getallen toe. Dus,
10101+01000 =11101.
In het bovenstaande resultaat hebben we het carry-bit niet gekregen. Bereken dus het 1-complement van het resultaat, dat wil zeggen 00010, wat het negatieve getal en het uiteindelijke antwoord is.