Command Palette

Search for a command to run...

Binaire rekenmachine: rekenmachine toevoegen, aftrekken en bitsgewijze wiskunde in elke basis

Binaire rekenmachine: rekenmachine toevoegen, aftrekken en bitsgewijze wiskunde in elke basis

T
Toolz Team
|Aug 23, 2026|15 min lezen

Onderdeel van de collectie Binair & Hex

De eerste bug die me leerde om bitbreedtes te respecteren was een toestemmingsvlag die zichzelf steeds opruimde Ik was een bitmasker aan het ORen in een geheeltallige kolom, en zo nu en dan werd het hele veld gereset De oorzaak was beschamend toen ik het eenmaal zag: ik redeneerde over de bits alsof ze in 32 slots leefden, maar de waarde was al verbreed en een verdwaalde NOT ergens stroomopwaarts had bits omgedraaid waar ik nooit rekening mee had gehouden Ik heb het opgelost door met een rekenmachine te gaan zitten die me de werkelijke bits op de werkelijke breedte liet zien, niet het nette decimaal dat mijn taal heeft afgedrukt Deze gids gaat over die gewoonte, met behulp van de Binary Calculator op Toolz.dev, en waarom het doen van bitsgewijze wiskunde waarbij je elke basis tegelijk kunt zien, uren van gissen bespaart.

tl;dr: Een binaire rekenmachine voert rekenkundige (optellen, aftrekken, vermenigvuldigen, delen) en bitsgewijze bewerkingen (AND, OR, XOR, NOT, verschuift) uit op gehele getallen geschreven in binair, octaal, decimaal of hex, en toont het resultaat in alle vier de grondtallen tegelijk. Rekenkunde is exact op elke grootte; bitsgewijze bewerkingen zijn afhankelijk van een gekozen bitbreedte. De Binary Calculator doet beide, volledig in uw browser, en rapporteert ondertekende en niet-ondertekende metingen voor bitsgewijze resultaten.

Wat is een binaire rekenmachine?

Een binaire rekenmachine is een hulpmiddel dat werkt op gehele getallen in grondtal twee, maar de nuttige zijn helemaal niet beperkt tot grondtal twee. Je kiest de grondtal waarin je denkt, binair, octaal, decimaal of hexadecimaal, typt je getallen, kiest een bewerking en leest het antwoord. De goede tonen dat antwoord in elke grondtal tegelijkertijd, dus je voert nooit een aparte conversie uit om te controleren wat je hebt.

De reden dat dit ertoe doet is dat low-level werk voortdurend kruist tussen bases Een kleur is hex, een machtigingsmasker is binair in je hoofd maar decimaal in de database, een netwerkwaarde is octaal in de ene config en decimaal in een andere. Als je de wiskunde op de ene plaats doet, met alle representaties zichtbaar, wordt een hele klasse transcriptiefouten verwijderd Je kopieert geen hex-waarde in een decimale rekenmachine en hoopt dat je deze eerst meteen hebt omgezet.

Op Toolz.dev is de stroom kort Kies de invoerbasis Typ de eerste waarde Kies een bewerking Typ de tweede waarde Het resultaat verschijnt in binair, octaal, decimaal en hex samen, en voor bitsgewijze bewerkingen toont het ook de getekende aflezing en de bitindeling op de door u gekozen breedte.

Welke operaties ondersteunt het?

Twee families, en ze recht houden is het hele spel De rekenkundige bewerkingen zijn optellen, aftrekken, vermenigvuldigen, delen, en modulo Deze werken op de echte numerieke waarde, dus ze gedragen zich als gewone wiskunde en geven niets om bitbreedte Division geeft het gehele quotiënt terug en rapporteert een rest, en modulo geeft alleen de rest terug, wat het onderscheid is dat mensen het vaakst achteruit krijgen.

De bitsgewijze bewerkingen zijn EN, OR, XOR, NAND, NOR, XNOR, NOT, en de links - en rechtsverschuivingen Deze werken in op de ruwe bits binnen een vast register, dus hun antwoord hangt volledig af van hoe breed dat register is EN, OR, en XOR zijn de alledaagse drie: EN maskeert bits af, OF zet bits aan, XOR schakelt ze om De ontkende vormen, NAND, NOR, en XNOR, zijn hun complementen binnen de breedte NIET draait elk bit De verschuivingen verplaatsen het hele patroon links of rechts met een aantal posities, waarbij de bits die van het uiteinde vallen, worden weggelaten.

Hier is het snelle mentale model dat ik gebruik bij het beslissen welke ik wil:

Operation Symbool Familie Typisch gebruik
Toevoegen / Aftrekken + / − Rekenkunde Gewone wiskunde met gehele getallen, elke grootte
Vermenigvuldigen/verdelen × / ÷ Rekenkunde Divisie rapporteert quotiënt en rest
Modulo mod Rekenkunde Alleen restant, bijvoorbeeld wrap-around indexering
EN & Bitwise Maskerbits eraf, test een vlag
OF | Bitwise Vlaggetjes instellen, maskers combineren
XOR ^ Bitwise Schakel bits, goedkope pariteit en swaps in
NIET ~ Bitwise Omkeren van elke bit binnen de breedte
Schakel naar links/rechts << />> Bitwise Vermenigvuldig of deel door machten van twee, pak velden

Waarom moet ik een bitbreedte kiezen?

Dit is de vraag die iedereen nieuw naar bitsgewijze wiskunde doet struikelen, en het is degene waar de rekenmachine het meest over is. Rekenkunde heeft een voor de hand liggend antwoord, ongeacht de grootte: vijf plus drie is acht, of je het nu in een byte of een woord van 64 bits voorstelt. Maar een beetje anders heeft NOT helemaal geen antwoord totdat je weet hoeveel bits er bestaan. NIET van vijf is & quot; flip elke bit," en het resultaat hangt af van de vraag of er acht bits of vierenzestig zijn om te draaien.

Verschuivingen hebben dezelfde afhankelijkheid vanuit de andere richting Verschuif een waarde die ver genoeg is overgebleven en bits marcheren van de bovenrand Of ze verdwijnen of wikkelen hangt af van de registergrootte Een integer type met vaste breedte in C, Java, Go of Rust beantwoordt dit door de breedte vooraan te definiëren: a uint8 is acht bits, a uint32 is tweeëndertig, en elke bitsgewijze bewerking gebeurt binnen dat vak De rekenmachine spiegelt dat precies door je 8, 16, 32 of 64 bits te laten kiezen, dus het resultaat komt overeen met wat je werkelijke code zal produceren in plaats van een geïdealiseerde abstractie met oneindige breedte.

De verkeerde breedte kiezen is geen afrondingsfout, het is een ander antwoord NOT of five is 250 in acht bits en 4294967290 in tweeëndertig Beide zijn correct voor hun breedte, en geen van beide is correct voor de ander. De gewoonte aannemen om de breedte in te stellen zodat deze overeenkomt met uw gegevenstype is de nuttigste discipline die deze tool aanmoedigt.

Hoe komt twee's complement naar voren in de resultaten?

Bijna elke processor vertegenwoordigt gehele getallen met teken met behulp van twee en#39;s complementeren, en de rekenmachine volgt dezelfde conventie, zodat de uitvoer overeenkomt met uw hardware. In twee en #39; s complementeert, heeft het bovenste bit van het register een negatief gewicht, dus een acht-bits patroon van 11111010 luidt als 250 als u het als niet-ondertekend behandelt, of als −6 als u het bovenste bit als een teken leest.

Dit is de reden waarom de tool beide metingen rapporteert voor een bitsgewijs resultaat Wanneer u NIET op vijf in acht bits uitvoert, krijgt u het bitpatroon 11111010. de rekenmachine toont de niet-ondertekende waarde 250, de ondertekende waarde −6 en de binaire lay-out, zodat u kunt zien dat het dezelfde bits zijn die op twee manieren worden geïnterpreteerd. Die dubbele lezing is precies wat u nodig heeft als een waarde kruist tussen een ondertekend en een niet-ondertekend type in uw code, wat een klassieke bron is van "impossible" getallen die in logboeken verschijnen.

Rekenkundige resultaten volgen dezelfde regel als ze negatief worden Trek twaalf van vijf af en het ware antwoord is −7, wat de rekenmachine in decimaal toont met een minteken, terwijl de binaire, octale en hex-vormen de twee-' s-complement-patroon gebruiken binnen de door u gekozen breedte, 11111001 in acht bits. Als u de negatieve waarde en het bitpatroon naast elkaar ziet, ziet u hoe het abstracte idee van & quot; het teken is gewoon het bovenste bit" tenslotte klikt.

Hoe tel of trek ik binaire getallen met de hand af, en controleer ik het hier?

Binaire optelling volgt dezelfde draagregels als decimaal, met een kleiner alfabet Nul plus nul is nul, nul plus één is één, één plus één is nul draag één, en één plus één plus een draag één draag één Dus 1010 plus 1100 werkt kolom voor kolom van rechts: 0+0 is 0, 1+0 is 1, 0+1 is 1, 1+1 is 0 draag 1, en de draag wordt het leidende bit, wat 10110 oplevert, wat 22 is in decimaal Dat in de rekenmachine ponsen bevestigt het in elk grondtal in één keer, en zo controleer ik mijn handrekenkunde als ik het opnieuw leer.

Aftrekken is waar twee' s complement zijn behoud verdient In plaats van te lenen over kolommen, computers aftrekken door het optellen van de negatieve, en het negatieve wordt gevormd door het omkeren van de bits en het toevoegen van een Je hoeft zelden te doen met de hand, maar het verklaart waarom de rekenmachine kan aftrekken in negatief gebied schoon: 5 min 12 wordt 5 plus de twee' s-complement van 12, en het resultaat is de −7 patroon hierboven beschreven Als je wilt verplaatsen van een enkele waarde tussen bases zonder enige wiskunde op het, de Nummer Basisomvormer is het begeleidende hulpmiddel, en de binaire vertaler behandelt het geval waarin u tekst in stukjes verandert in plaats van te rekenen.

Wanneer doen bitsgewijze bewerkingen er eigenlijk toe?

Vaker dan beginners verwachten, en op plaatsen die niet vanzelfsprekend zijn &quot;low level.&quot; Permission systemen zijn het klassieke geval: een set vlaggen verpakt in één geheel getal, waar u OF om een toestemming te verlenen, EN met een aanvulling om het in te trekken, en EN om er een te testen Feature toggles, Unix bestandsmodi, en hardware register kaarten gebruiken allemaal hetzelfde patroon Als u ooit een waarde als 0o755 of een constante gedefinieerd als hebt gezien 1 << 3, u hebt ontmoet bit verpakking.

XOR komt zowel in goedkope trucs als in echte algoritmen naar voren: een beetje schakelen, pariteit berekenen en de klassieke swap-zonder-temp. Verschuift veel sneller dan algemene vermenigvuldiging met machten van twee, en ze verpakken verschillende kleine velden in één woord, en dat is hoe kleurwaarden, netwerkheaders en compacte serialisatieformaten klein blijven. Ik raakte deze voortdurend aan het bouwen over de stapel, van een Laravel API die rolvlaggen opslaat als bitmasker tot een React-canvas dat RGBA uit een verpakt geheel getal leest. Het begrijpen van de bewerkingen is een kleine investering die overal terugbetaalt, en ik schreef hoe deze passen in een bredere kit in de Productiviteitstools voor ontwikkelaar piece.

De subtiele mislukkingen zijn wat een zichtbare rekenmachine de moeite waard maakt om te gebruiken Een masker dat op de verkeerde breedte wordt toegepast, houdt stilletjes bits bij of laat deze vallen die je niet had bedoeld Een verschuiving die uitging van 32 bits gedraagt zich anders bij 64 Een ondertekende waarde die ANDed tegen een niet-ondertekend masker produceert een getal dat er onmogelijk uitziet totdat je de bits van twee & #39; s-complement ziet Als je de bitindeling ziet veranderen terwijl je de breedte aanpast, worden die bugs van mysteries omgezet in duidelijke fouten.

Er is hier ook een leerhoek. Als ik bitmaskers aan iemand nieuw uitleg, zijn decimale getallen nutteloos: 12 EN 10 zijn 8 betekent niets totdat je 1100 en 1010 op één lijn brengt en alleen de kolom bekijkt waarin beide 1 zijn. Omdat de rekenmachine de binaire lay-out naast de decimaal, octaal en hex toont, doet het die uitlijning voor je, en de bewerking is niet langer een regel om te onthouden en wordt iets dat je kunt zien. Hetzelfde geldt voor verschuivingen, waarbij wordt aangetoond dat een verschuiving naar links met één de waarde verdubbelt terwijl het verschuiven van elk bit één kolom links de rekenkundige betekenis verbindt met het bitniveaumechanisme op een manier die een enkel getal nooit kan zien.

Wat zijn de limieten, en zijn mijn gegevens privé?

De rekenkundige kant heeft feitelijk geen maatlimiet. De rekenmachine gebruikt JavaScript&#39;s BigInt, een geheel getaltype met willekeurige precisie, gestandaardiseerd in ECMAScript, dus het optellen of vermenigvuldigen van getallen met tientallen cijfers blijft exact zonder stille overloop Dit is een echt voordeel ten opzichte van rekenmachines die zijn gebouwd op gewone getallen met drijvende komma, die hun precisie verliezen tot voorbij ongeveer vijftien cijfers en helemaal geen grote gehele getallen precies kunnen vertegenwoordigen.

De bitsgewijze zijde wordt bewust begrensd door de breedte die je kiest, want dat is het punt: een bewerking met vaste breedte heeft alleen zin binnen een vast register Als je een waarde invoert die groter is dan de breedte kan bevatten, reduceert de rekenmachine deze tot die breedte en waarschuwt je, dus een afknotting gebeurt nooit stil. Verschuivingen worden maximaal beperkt, zodat een op hol geslagen verschuivingshoeveelheid de pagina niet kan ophangen.

Op privacy draait alles in je browser Niets wat je typt wordt geüpload, gelogd, of opgeslagen, en de tool blijft werken als je de verbinding met internet verbreekt nadat de pagina is geladen Dat doet er meer toe dan het klinkt: de waarden die mensen door een bitsgewijze rekenmachine lopen zijn vaak machtigingsmaskers, tokens, of hardwareadressen van systemen die ze liever niet plakken in een server die ze niet controleren Als het je uitmaakt welke tools je gegevens op je machine bewaren, dan is de Gegevensprivacy in online tools gids behandelt hoe u hulpmiddelen aan de clientzijde kunt vertellen aan hulpmiddelen die naar huis bellen. Voor naburig werk op laag niveau is de IEEE 754-converter en de ASCII-tabel rond de set af.

Veelgestelde vragen

Hoe voeg ik twee binaire getallen toe?

Stel de invoerbasis in op binair getal, typ het eerste getal, kies Toevoegen, typ het tweede getal en lees het resultaat. 1010 plus 1100 is bijvoorbeeld 10110, wat het gereedschap ook weergeeft als 22 in decimaal, 26 in octaal en 16 in hex. Rekenkunde is exact op elke lengte.

Wat is het verschil tussen rekenkundige en bitsgewijze bewerkingen?

Rekenkundige bewerkingen (optellen, aftrekken, vermenigvuldigen, delen, modulo) werken in op de werkelijke numerieke waarde en zijn onafhankelijk van de bitbreedte. Bitgewijze bewerkingen (AND, OR, XOR, NOT en verschuivingen) werken in op de ruwe bits in een register met vaste breedte, dus hun resultaat hangt af van het feit of u 8, 16, 32 of 64 bits kiest.

Waarom moet ik een bitbreedte kiezen?

NOT en shift-bewerkingen hebben pas een gedefinieerd antwoord als de registergrootte bekend is, omdat ze afhankelijk zijn van welke bits er bestaan en welke van het einde vallen Door 8, 16, 32 of 64 bits te selecteren, komt de rekenmachine overeen met hoe een specifiek geheeltallig type zich gedraagt in een echte programmeertaal.

Hoe gaat de rekenmachine om met negatieve resultaten?

Negatieve rekenkundige resultaten worden weergegeven met een minteken in decimaal, en hun binaire, octale en hex-vormen gebruiken twee&#39; s-complement binnen de geselecteerde breedte Voor bitsgewijze resultaten rapporteert het gereedschap zowel de niet-ondertekende waarde als de ondertekende twee&#39; s-complementwaarde.

Kan ik basen mengen, zoals het toevoegen van een hexadecimaal getal aan een decimaal getal?

Beide operanden worden gelezen in de enkele basis die u selecteert, zodat u geen bases kunt mengen in één berekening Om een hex en een decimale waarde te combineren, moet u eerst een van hen converteren en vervolgens beide in dezelfde basis invoeren. Het resultaat wordt altijd weergegeven in alle vier de bases.

Wat doet de rekenmachine als ik deel?

Division geeft het gehele quotiënt terug, en als de deling niet exact is rapporteert het gereedschap de rest als een noot Om de rest op zichzelf te krijgen, gebruikt u in plaats daarvan de Modulo-bewerking, die alleen de rest retourneert.

Hoe groot kunnen de getallen zijn?

Rekenkunde maakt gebruik van JavaScript BigInt, dus getallen met vele tientallen cijfers worden exact behandeld zonder overflow Bitwise bewerkingen worden begrensd door de gekozen breedte; waarden die deze overschrijden worden tot die breedte gereduceerd, en de tool waarschuwt u wanneer dat gebeurt.

Worden mijn gegevens ergens naartoe gestuurd?

Nee Elke berekening wordt uitgevoerd als JavaScript in uw browser Niets dat u typt wordt verzonden, gelogd of opgeslagen, en de tool blijft werken als u de verbinding met internet verbreekt nadat de pagina is geladen.


Probeer zelf de wiskunde met de gratis Binary Calculator. Het verwerkt rekenkundige en bitsgewijze bewerkingen in binair, octaal, decimaal en hex, volledig in uw browser, zonder dat er iets is geüpload.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!