Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

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

  1. Elektronica: Een hands-on wetenschap voor iedereen
  2. Een thuis elektronica-lab opzetten: Tools, werkplek en benodigdheden
  3. Multimeter gebruik beheersen: Nauwkeurige spanningmeting gemaakt simpel
  4. Weerstandsmetingen met een ohmmeter: Een praktische gids
  5. Een basis 6V batterij-lamp circuit bouwen en troubleshooten
  6. 3-Bit Binaire Teller met 555 Timer en 4027 Flip-Flops
  7. Decimaal vs. Binair: Plaatsgewicht, Efficiëntie en Conversie
  8. Octaal en Hexadecimaal: Praktische Gids voor Ingenieurs
  9. Binaire Optelling: Regels, Voorbeelden en Rol in Digitale Computers
  10. Efficiënte ARM-containerbuilds op x86-systemen
  11. Je eerste Go-applicatie bouwen op PLCnext: Een beginnergids