Binaire deling kan worden opgelost met behulp van de staartdelingsmethode, een methode waarmee u het delingsproces zelf kunt leren en waarmee u eenvoudige computerprogramma's kunt maken. Bovendien kunnen complementaire methoden van iteratief aftrekken benaderingen bieden waarmee u misschien niet bekend bent, ook al worden ze niet vaak gebruikt voor programmeren. Machinetalen gebruiken meestal benaderingsalgoritmen om efficiënter te zijn, maar dit wordt niet beschreven in dit artikel.
Stap
Methode 1 van 2: Lange deling gebruiken
Stap 1. Leer de decimale staartdeling opnieuw
Als je lange tijd geen staartdeling in het reguliere decimale (grondtal tien) getalsysteem hebt gebruikt, herhaal dan de basis met behulp van het voorbeeldprobleem 172 gedeeld door 4. Anders sla je deze stap over en ga je direct naar de volgende stap om te verkennen een soortgelijk proces met binaire getallen.
- Teller gedeeld door noemer, en het resultaat is quotiënt.
- Vergelijk de noemer met het eerste getal in de teller. Als de noemer groter is, ga dan door met het toevoegen van getallen aan de teller totdat de noemer kleiner is. (Als we bijvoorbeeld 172 delen door 4 berekenen, vergelijken we 4 met 1, we weten dat 4 groter is dan 1, dus ga verder met het vergelijken van 4 met 17.)
- Schrijf het eerste cijfer van het quotiënt boven de laatste teller die in de vergelijking is gebruikt. Als we 4 met 17 vergelijken, zien we dat 4 vier keer gedekt wordt door 17, dus schrijven we 4 als het eerste getal van het quotiënt, boven 7.
- Vermenigvuldig en trek af om de rest te krijgen. Vermenigvuldig het quotiënt met de noemer, wat 4 × 4 = 16 betekent. Schrijf 16 onder 17 en trek 17 bij 16 af om de rest te krijgen, namelijk 1.
- Herhaal het proces. We vergelijken opnieuw de noemer, die 4 is, met het volgende getal, dat 1 is, merk op dat 4 groter is dan 1, dan "aftrekken" het volgende getal van de teller, we gaan verder door 4 te vergelijken met 12. We zien dat 4 wordt gedekt door 12 driemaal geen rest, dus schrijven we 3 als het volgende getal van het quotiënt. Het antwoord is 43.
Stap 2. Bereid een staartdelingsprobleem in binair voor
Laten we 10101 11 nemen. Schrijf als een probleem voor staartdeling, met 10101 als de teller en 11 als de noemer. Laat ruimte erboven als een plaats om het quotiënt te schrijven, en eronder als een plaats om berekeningen te schrijven.
Stap 3. Vergelijk de noemer met het eerste cijfer van de teller
Het werkt op dezelfde manier als staartdeling in decimaal, maar het is eigenlijk veel gemakkelijker in het binaire getallenstelsel. In binair zijn er slechts twee opties, ofwel kun je het getal niet delen door de noemer (wat 0 betekent) of de noemer wordt maar één keer opgenomen (wat betekent 1):
11 > 1, dus 11 is niet "bedekt met" 1. Schrijf het getal 0 als het eerste getal van het quotiënt (boven het eerste cijfer van de teller)
Stap 4. Werk aan het volgende nummer en herhaal totdat je het nummer 1 krijgt
Hieronder volgen de volgende stappen in ons voorbeeld:
- Leid het volgende getal af van de teller. 11 > 10. Schrijf 0 in het quotiënt.
- Verlaag het volgende nummer. 11 < 101. Schrijf het getal 1 in het quotiënt.
Stap 5. Zoek de rest van de deling
Net als bij decimalen met staartdeling, vermenigvuldigt u het getal dat we zojuist hebben gekregen (1) met de noemer (11), en schrijft u het resultaat onder de teller parallel aan het getal dat we zojuist hebben berekend. In het binaire getallenstelsel kunnen we dit proces samenvatten, omdat 1 x de noemer altijd gelijk is aan de noemer:
- Schrijf de noemer onder de teller. Schrijf hier 11 parallel aan de eerste drie cijfers van de teller (101).
- Tel 101 - 11 om de rest van de deling te krijgen, die 10 is. Kijk hoe je binaire getallen kunt aftrekken als je opnieuw moet leren.
Stap 6. Herhaal totdat het probleem is opgelost
Verlaag het volgende getal van de noemer naar de rest van de deling om 100 te krijgen. Aangezien 11 < 100, schrijf 1 als het volgende getal in de deling. Ga verder met de berekening zoals hiervoor:
- Schrijf 11 onder 100 en trek dan af om 1 te krijgen.
- Verlaag het laatste cijfer van de teller tot 11.
- 11 = 11, dus schrijf 1 als het laatste cijfer van het quotiënt (antwoord).
- Aangezien er geen rest is, is de berekening voltooid. Het antwoord is 00111, of alleen 111.
Stap 7. Voeg indien nodig radixpunten toe
Soms is het resultaat van een berekening geen geheel getal. Als u na het gebruik van het laatste cijfer nog steeds deling over heeft, voegt u ".0" toe aan de teller en "." tot het quotiënt, zodat u nog een getal kunt afleiden en de berekening kunt voortzetten. Herhaal dit totdat u de gewenste precisie hebt bereikt en rond het resultaat vervolgens af. Op papier kun je naar beneden afronden door de laatste 0 te verwijderen, of als de laatste een 1 is, gooi deze weg en voeg het meest recente laatste getal toe aan 1. Volg bij het programmeren een van de verschillende standaard afrondingsalgoritmen om fouten te voorkomen bij het converteren van binaire getallen naar decimaal en omgekeerd.
- Binaire deling resulteert vaak in herhaalde fractionele delen, vaker dan hetzelfde proces in het decimale systeem.
- Dit wordt vaker het "radixpunt" genoemd, dat van toepassing is op elke basis, omdat de term "decimaalpunt" alleen van toepassing is in het decimale systeem.
Methode 2 van 2: De complementaire methode gebruiken
Stap 1. Begrijp het basisconcept
Een manier om het delingsprobleem op te lossen - op welke basis dan ook - is om de noemer van de teller af te trekken en vervolgens de rest, te tellen hoe vaak dit proces kan worden herhaald voordat een negatief getal wordt verkregen. Het volgende voorbeeld is een berekening in grondtal tien, waarbij 26 7 wordt berekend:
- 26 - 7 = 19 (1 keer aftrekken)
- 19 - 7 = 12 (2)
- 12 - 7 = 5 (3)
- 5 - 7 = -2. Negatieve getallen, dus doe een stapje terug. Het resultaat is 3 en de rest wordt gedeeld door 5. Merk op dat deze methode het fractionele deel van het antwoord niet berekent.
Stap 2. Leer aftrekken met complementen
Hoewel u de bovenstaande methode gemakkelijk in een binair systeem kunt gebruiken, kunnen we ook het gebruik van een efficiëntere methode verminderen, wat tijd bespaart bij het programmeren van de computer om binaire deling uit te voeren. Dit is aftrekken met de complementmethode in binair. Hier zijn de basisprincipes, het berekenen van 111 - 011 (zorg ervoor dat de twee nummers dezelfde lengte hebben):
- Vind het ene-complement voor het tweede getal door elk cijfer van 1 af te trekken. Deze stap is eenvoudig te doen in het binaire systeem door elke 1 in 0 en elke 0 in 1 te veranderen. In dit voorbeeld 011 tot 100.
- Tel 1 op bij het resultaat van de berekening: 100 + 1 = 101. Dit getal wordt het twee-complement genoemd, dus de aftrekking kan als optelling worden opgelost. In wezen is het resultaat van deze berekening alsof we negatieve getallen optellen en geen positieve getallen aftrekken, nadat dit proces is voltooid.
- Voeg het resultaat toe aan het eerste getal. Schrijf en los het optelprobleem op: 111 + 101 = 1100.
- Verwijder meer nummers. Verwijder het eerste getal uit het berekeningsresultaat om het uiteindelijke resultaat te krijgen. 1100 → 100.
Stap 3. Combineer de twee hierboven beschreven concepten
Nu kent u de aftrekmethode voor het oplossen van deelproblemen, evenals de twee-complementmethode voor het oplossen van aftrekproblemen. Met behulp van de onderstaande stappen kunt u de twee combineren in één methode om het delingsprobleem op te lossen. Probeer het desgewenst zelf op te lossen voordat u verdergaat.
Stap 4. Trek de noemer af van de teller en voeg het complement van de twee toe
Laten we aan het probleem 100011 000101 werken. De eerste stap is het oplossen van 100011 - 000101, met behulp van de twee-complementmethode om deze berekening in een som te veranderen:
- Twee complement van 000101 = 111010 + 1 = 111011
- 100011 + 111011 = 1011110
- Verwijder overtollige nummers → 011110
Stap 5. Tel 1 op bij het resultaat van de deling
In een computerprogramma voegt u hier 1 toe aan het quotiënt. Maak op papier aantekeningen in de hoeken, zodat ze niet vermengd raken met ander werk. We zijn erin geslaagd om één keer af te trekken, dus het resultaat van de deling tot nu toe is 1.
Stap 6. Herhaal het proces door de noemer af te trekken van de rest van de berekening
Het resultaat van onze laatste berekening is de rest van de deling nadat de noemer eenmaal is "bedekt". Blijf het complement van de noemer van de twee toevoegen bij elke herhaling en verwijder extra cijfers. Tel bij elke iteratie 1 op bij het quotiënt en herhaal dit totdat de rest van de berekening gelijk is aan of kleiner is dan de noemer:
- 011110 + 111011 = 1011001 → 011001 (quotiënt 1+1=10)
- 0110001 + 111011 = 1010100 → 010100 (quotiënt 10+1=11)
- 010100 + 111011 = 1001111 → 001111 (11+1=100)
- 001111 + 111011 = 1001010 → 001010 (100+1=101)
- 001010 + 111011 = 10000101 → 0000101 (101+1=110)
- 0000101 + 111011 = 1000000 → 000000 (110+1=111)
- 0 is kleiner dan 101, dus we stoppen hier. Het antwoord op dit delingsproces is: 111. Terwijl de rest van de deling het eindresultaat is van het aftrekproces, in dit geval 0 (geen rest).
Tips
- Instructies voor het verhogen (optellen van 1), verlagen (aftrekken van 1) of verwijderen van de stapel (pop-stack) moeten worden overwogen voordat binaire wiskunde wordt toegepast in een machine-instructieset.
- De twee-complementmethode voor aftrekken werkt niet als de getallen een ander aantal cijfers hebben. Om dit op te lossen, voegt u een nul toe aan het begin van het getal voor een kleiner getal.
- Negeer negatieve getallen in negatieve binaire getallen voordat u gaat berekenen, behalve om te bepalen of het antwoord positief of negatief is.