Binaire Aftrekken met Two's Complement
Binaire aftrekking kan met klassieke bit-voor-bit ontlening, maar een nog simpelere aanpak is het gebruik van two's complement rekenkunde. Door de subtrahend om te zetten in zijn negatieve binaire vorm en vervolgens op te tellen, reducet de bewerking tot een enkele binaire optelling.
Two's complement laat ons negatieve getallen coderen in dezelfde bitbreedte als positieve door een leidende "negatief-gewichts" bit te gebruiken. Wanneer we een positief getal optellen bij een negatief, gedraagt de meest significante bit van de negatieve operand zich als een negatief gewicht, wat effectief aftrekken uitvoert.
Voorbeeld 1: 7₁₀ − 5₁₀
Representeer elke waarde in two's complement met drie data bits plus één negatief-gewichtsbit:
positief zeven = 0111₂ negatief vijf = 1011₂
Tel ze nu op:
. 1111 ← Carry bits . 0111 . + 1011 . ------ . 10010 . | . Verwijder de overflow bit . Resultaat = 0010₂
De overflow bit wordt verworven omdat de linkermost positie een negatief gewicht (−8) vertegenwoordigt. Het eindige 4-bit patroon 0010₂ is gelijk aan de decimale waarde 2, wat 7 − 5 = 2 bevestigt.
Voorbeeld 2: 18₁₀ + (−25)₁₀
Bepaal eerst de benodigde bitbreedte. De grootste magnitude in de bewerking is 25, wat vijf bits vereist; voeg er nog één toe voor de negatief-gewichtsbit, wat in totaal zes bits geeft.
Representeer +25 en zijn two's complement:
+25₁₀ = 011001₂ (zes bits) One's complement van 11001₂ = 100110₂ Tel 1 op → Two's complement = 100111₂ −25₁₀ = 100111₂
Positief 18 wordt geschreven als:
18₁₀ = 010010₂
De twee getallen optellen:
. 11 ← Carry bits . 100111 . + 010010 . ------ . 111001
Geen overflow treedt op, dus het resultaat 111001₂ blijft. De meest significante bit is 1, wat een negatieve waarde in two's complement aangeeft. Terugconverteren naar decimaal:
(1 × −32) + (1 × 16) + (1 × 8) + (1 × 1) = −7
Dus 18 + (−25) = −7, zoals verwacht.
GERELATEERDE WERKBLADEN:
- Binaire Rekenkunde Werkblad
Industriële technologie
- Elektronica: Een hands-on wetenschap voor iedereen
- Een thuis elektronica-lab opzetten: Tools, werkplek en benodigdheden
- Multimeter gebruik beheersen: Nauwkeurige spanningmeting gemaakt simpel
- Weerstandsmetingen met een ohmmeter: Een praktische gids
- Een basis 6V batterij-lamp circuit bouwen en troubleshooten
- 3-Bit Binaire Teller met 555 Timer en 4027 Flip-Flops
- Decimaal vs. Binair: Plaatsgewicht, Efficiëntie en Conversie
- Octaal en Hexadecimaal: Praktische Gids voor Ingenieurs
- Binaire Optelling: Regels, Voorbeelden en Rol in Digitale Computers
- Efficiënte ARM-containerbuilds op x86-systemen
- Je eerste Go-applicatie bouwen op PLCnext: Een beginnergids