Naar de inhoud

Binaire calculator

Typ twee binaire getallen en krijg de som, het verschil, het product of het quotiënt — met de dragen, leningen, deelproducten en staartdelingsstappen kolom voor kolom uitgewerkt. Schakel over naar de bitsgewijze modus om AND, OR, XOR, NOT, verschuivingen en rotaties toe te passen bij 4 tot 128 bits. Gratis, zonder registratie, en niets verlaat je browser.

Soort bewerking

Alleen binaire cijfers, met een optioneel voorloopminteken. Spaties en underscores worden genegeerd, dus 1011 0110 werkt.

Resultaat

1 0010

Binair

18

Decimaal

12

Hexadecimaal

22

Octaal

5 bits

Lengte

Uitwerking

Optellen in kolommen met dragen
Rij43210
Drag binnen11010
A01101
B00101
Som10010

Zo gebruik je de binaire calculator

  1. 1. Kies de soort bewerking. Rekenen telt op, trekt af, vermenigvuldigt of deelt. Bitsgewijs werkt op de afzonderlijke bits van patronen met een vaste breedte.
  2. 2. Voer je getallen in. Gebruik alleen 0 en 1. Een voorloopminteken, een 0b-voorvoegsel, spaties en underscores zijn allemaal toegestaan, dus 1011 0110 wordt als één getal gelezen.
  3. 3. Kies een breedte (alleen bitsgewijs). NOT, verschuivingen en rotaties betekenen niets zonder breedte, dus de calculator vraagt er één: 4, 8, 16, 32, 64 of 128 bits.
  4. 4. Lees het resultaat en de uitwerking. Het antwoord verschijnt in binair, decimaal, hexadecimaal en octaal, met de kolomuitwerking eronder.

Hoe binair optellen werkt

Binair optellen volgt dezelfde kolomregels als decimaal optellen, maar een kolom loopt over bij 2 in plaats van 10. Tel de twee bits in een kolom op bij eventuele drag die van rechts is binnengekomen. Is het totaal 0 of 1, schrijf het dan op. Is het 2 of 3, schrijf dan het laagste bit (0 of 1) op en draag 1 naar de volgende kolom.

De vier gevallen van één kolom
KolomtotaalGeschreven bitDrag naar buiten
0 + 0 + 0 = 000
1 + 0 + 0 = 110
1 + 1 + 0 = 10 (2)01
1 + 1 + 1 = 11 (3)11

Neem 1101 (13) plus 101 (5). De calculator vult beide getallen aan tot vijf kolommen en laat de drag zien die in elke kolom binnenkomt — 11010 van links naar rechts — wat 10010 oplevert, dat 18 is. De dragrij is het deel dat mensen kwijtraken als ze met de hand optellen.

Aftrekken, vermenigvuldigen en delen

Aftrekken werkt andersom: als een kolom 1 − 1 − 1 of 0 − 1 nodig heeft, leent hij 1 van de kolom links ervan, die hier 2 waard is. 1000 − 0011 laat een lening door drie kolommen lopen en eindigt bij 0101 (8 − 3 = 5). Is A kleiner dan B, dan trekt de calculator de kleinere van de grotere af en geeft het resultaat een minteken.

Vermenigvuldigen is verschuiven en optellen. Elk bit met waarde 1 in de vermenigvuldiger levert een kopie van het vermenigvuldigde getal op, naar links verschoven over de positie van dat bit; een 0 levert niets op. Voor 1011 × 101 (11 × 5) staan de bits met waarde 1 op de posities 0 en 2, dus de deelproducten zijn 1011 en 101100, en hun som is 110111 — 55.

Delen is staartdeling met een heel eenvoudige schattingsstap. Breng één bit van het deeltal per keer naar beneden; past de deler in wat je hebt, trek hem dan af en schrijf een 1 in het quotiënt, anders schrijf je een 0. 1100100 ÷ 111 (100 ÷ 7) geeft een quotiënt van 1110 (14) en een rest van 10 (2). Bij negatieve operanden wordt het quotiënt richting nul afgekapt en krijgt de rest het teken van A, zoals in C, Java en JavaScript.

Bitsgewijze bewerkingen bij een gekozen breedte

Bitsgewijze bewerkingen met twee invoerwaarden
ABANDORXORNANDNORXNOR
00000111
01011100
10011100
11110001

Met 1100 en 1010 bij 4 bits geeft AND 1000, OR geeft 1110 en XOR geeft 0110. NOT keert elk bit binnen de breedte om, dus dezelfde 1100 wordt 0011 bij 4 bits maar 11110011 bij 8 bits — daarom doet de breedte ertoe.

Een linksverschuiving over n plaatsen verplaatst elk bit n plaatsen omhoog en vult aan met nullen; de bits die boven vallen gaan verloren, en de calculator toont ze. Een logische rechtsverschuiving vult met nullen. Een rekenkundige rechtsverschuiving kopieert het bovenste bit, zodat een negatief getal negatief blijft: 10110110 naar rechts verschoven over 2 is 00101101 logisch, maar 11101101 (−19) rekenkundig. Rotaties laten de bits die aan het ene eind vallen aan het andere eind terugkomen, zodat er niets verloren gaat.

Geen overloop in de rekenmodus

Rekenen is hier exact bij elke lengte, dus 11111111 + 1 is 100000000, niet 0. Echte hardware houdt een vast aantal bits aan en loopt dan over. Om dat gedrag te zien — en de bijbehorende bereiken met teken — gebruik je de Two's Complement Calculator.

Veelgemaakte fouten

  • De draag naar de meest linkse kolom vergeten. Twee getallen van 8 bits kunnen een antwoord van 9 bits geven. De calculator houdt die extra kolom.
  • Logische en rekenkundige rechtsverschuivingen door elkaar halen. Ze zijn gelijk voor positieve getallen en verschillen bij elk patroon waarvan het bovenste bit 1 is. Talen verschillen: Java's >> is rekenkundig en >>> is logisch, terwijl C bij >> op een negatief getal met teken de compiler laat kiezen (bij de gangbare compilers rekenkundig).
  • Per ongeluk een bitpatroon als getal met teken lezen. 11110011 is 243 zonder teken en −13 in tweecomplement. De bitsgewijze resultaten tonen beide, zodat je ziet welke je bedoelt.
  • Aannemen dat NOT breedte-onafhankelijk is. In een onbegrensd geheel getal is NOT van 12 gelijk aan −13. Binnen een vaste breedte is het het complementpatroon, en dat geeft deze calculator terug.

Veelgestelde vragen

Hoe tel je binaire getallen op?
Werk van de rechterkolom naar links en tel de twee bits en eventuele drag op. Een kolomtotaal van 0 of 1 schrijf je zoals het is; een totaal van 2 schrijf je als 0 met een drag van 1, en een totaal van 3 als 1 met een drag van 1. Bijvoorbeeld: 1101 + 101 = 10010. De calculator toont de drag die in elke kolom binnenkomt.
Hoe trek je binaire getallen af?
Trek kolom voor kolom af, vanaf rechts. Komt een kolom onder nul uit, dan leen je 1 van de volgende kolom naar links, wat 2 aan de huidige kolom toevoegt. Is het tweede getal groter, trek dan in de andere volgorde af en zet een minteken voor het antwoord. 1000 − 11 = 101 (8 − 3 = 5).
Wat is het verschil tussen een logische en een rekenkundige rechtsverschuiving?
Een logische rechtsverschuiving vult de vrijgekomen bovenste bits met nullen, dus ze behandelt het patroon als een getal zonder teken. Een rekenkundige rechtsverschuiving kopieert het oorspronkelijke bovenste bit, zodat een negatief tweecomplement-getal negatief blijft. Beide halveren de waarde, maar alleen de rekenkundige verschuiving rondt negatieve waarden correct af.
Wat doen AND, OR en XOR?
Ze vergelijken twee bitpatronen kolom voor kolom. AND geeft 1 alleen waar beide bits 1 zijn, OR geeft 1 waar minstens één bit 1 is, en XOR geeft 1 waar precies één bit 1 is. AND wordt gebruikt om bits te maskeren, OR om bits te zetten, en XOR om bits om te keren of om verschillen te vinden.
Kan deze calculator met negatieve binaire getallen werken?
In de rekenmodus wel: zet een minteken ervoor, dan worden de tekenregels toegepast op het exacte resultaat. De bitsgewijze modus neemt in plaats daarvan gewone bitpatronen, omdat het patroon van een negatief getal van de breedte afhangt. Gebruik de Two's Complement Calculator om het patroon van een negatieve waarde te vinden.
Hoe groot mag een binair getal zijn?
Er is geen vaste grens, omdat het rekenen met gehele getallen van willekeurige precisie werkt. De kolomuitwerking wordt getekend voor operanden tot 64 bits; daarboven krijg je nog steeds het exacte resultaat, zonder de stappentabel. Bitsgewijze bewerkingen zijn beperkt tot de gekozen breedte, tot 128 bits.

Gerelateerde tools

Meer hulpmiddelen: Data, opmaaktalen en code