Talstelsel omrekenen

Reken een geheel getal om tussen binair, octaal, decimaal, hexadecimaal en elk grondtal tot 36.

Draait volledig in je browser. Er wordt niets geüpload, gelogd of opgeslagen.

Spaties, underscores en een voorvoegsel 0x of 0b worden genegeerd.

Omgerekend

255

Binair (2)
11111111
Octaal (8)
377
Decimaal (10)
255
Hexadecimaal (16)
FF

Hetzelfde getal kun je in elk grondtal schrijven, en welk je tegenkomt hangt af van waar je kijkt: hexadecimaal in een geheugendump, binair in een rechtenmasker, octaal in de modus van een bestand, decimaal in al het andere. Dit rekent tussen allemaal om.

Hoe het werkt

De cijfers lopen van 0 tot 9 en daarna van A tot Z, en dat maakt grondtallen tot 36 mogelijk. Hoofd- of kleine letters maken bij de invoer niet uit, dus ff en FF zijn hetzelfde getal.

De omrekening gebeurt door herhaalde deling op de cijfers zelf, in plaats van de invoer eerst om te zetten in een machine-integer. Dat is belangrijker dan het lijkt: een hash van 64 bits of een id van 128 bits is precies het soort waarde dat mensen in een omrekentool voor talstelsels plakken, en alles wat door een drijvendekommagetal gaat, rondt het vanaf zo'n zestien cijfers stilletjes af.

Alleen gehele getallen, en zonder minteken. Een breuk in een ander grondtal is een andere vraag, met een eigen afronding, en die terloops beantwoorden zou een resultaat geven dat exact lijkt en het niet is.

Voorbeelden

Geval Invoer Resultaat
Een byte in hexadecimaal ff from base 16 255 in decimal, 11111111 in binary
Een Unix-bestandsmodus 755 from base 8 493 in decimal, 111101101 in binary
Groter dan een machine-integer, en toch exact ffffffffffffffffffffffff from base 16 79228162514264337593543950335

Veelgestelde vragen

Kan het getallen groter dan 64 bits aan?

Ja. De rekenkunde gebeurt op de reeks cijfers, dus de lengte is geen grens en er wordt niets afgerond. Probeer een volledige SHA-256-digest in grondtal 16 en lees hem terug in grondtal 10.

Waarom worden negatieve getallen niet geaccepteerd?

Omdat hoe je een negatief getal schrijft afhangt van een conventie die deze tool niet kan kennen: een minteken, tweecomplement met een bepaalde breedte, of een tekenbit. Er stilletjes een kiezen zou een zelfverzekerd antwoord geven dat voor de andere twee fout is.

Zijn de voorvoegsels 0x en 0b toegestaan?

Ja, en ook spaties en underscores. Dat is notatie en geen cijfers — 1010 1100 en 1010_1100 zijn hetzelfde getal — dus ze worden verwijderd voordat er gelezen wordt.

Waarom houdt het op bij grondtal 36?

Omdat daar de cijfers op zijn: tien cijfers en zesentwintig letters. Verder gaan vraagt om een alfabet waarover je het eerst eens moet worden, zoals base58 en base64 elk op hun eigen manier doen.

Goed om te weten

  • Alleen gehele getallen, zonder teken. Een breuk in een ander grondtal heeft een afrondingsregel nodig, en een negatief getal een conventie — een minteken, of tweecomplement met een bepaalde breedte — die deze tool niet uit de invoer alleen kan afleiden.
  • De vier gangbare grondtallen worden altijd getoond naast het grondtal dat je hebt gevraagd, omdat de waarde waarmee je wilt vergelijken meestal een van die vier is.

Alle tools in Code