Tallsystemkonverter

Skriv inn et heltall med et hvilket som helst grunntall fra 2 til 36 eller Base62, og se det som binær, oktal, desimal, heksadesimal, Base36 og Base62 samtidig. Tall av alle lengder konverteres nøyaktig.

Kjører helt i nettleseren din. Ingenting lastes opp.

Slik bruker du verktøyet

  1. Skriv inn tallet du vil konvertere.
  2. Velg grunntallet det er skrevet med under Grunntall for inndata, fra 2 til 36 eller Base62.
  3. Les av resultatet som binær, oktal, desimal, hex, Base36 og Base62 på samme tid.
  4. For alle andre grunntall velger du ønsket grunntall under Egendefinert grunntall.

Tall, ikke byte

Dette verktøyet konverterer verdien av et tall. Desimaltallet 255 er 11111111 binært, 377 oktalt, ff heksadesimalt og 73 i Base36.

Bytekodinger som Base16 og Base2 gjør noe annet: de koder tekst eller filer. Teksten 255 er tre tegn, lagret som bytene 32 35 35 i hex, eller 00110010 00110101 00110101 binært. Bruk denne siden for hex-verdien av et tall, og bytekoderne for hex-verdien av tegn eller en fil.

Slik fungerer posisjonstallsystemer

I alle tallsystemer er hvert siffer verdt grunntallet opphøyd i sifferets posisjon, talt fra høyre og med start på null. Hex ff er 15 × 16 + 15 = 255, og binært 11111111 er 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Grunntall over 10 fortsetter sifrene med bokstaver, så a betyr 10 og z betyr 35 i Base36. Base62 tar i tillegg med bokstavene i den andre kasusen, så der har store og små bokstaver forskjellige verdier.

Ett hex-siffer står for nøyaktig 4 bit og ett oktalt siffer for 3 bit. Derfor bruker programmerere hex og oktal som en kort skrivemåte for binære tall: 1111 1111 blir ff gruppe for gruppe.

Store og negative tall

Konverteren bruker heltall med vilkårlig presisjon (JavaScript BigInt), så lange tall forblir nøyaktige. Mange kalkulatorer og vanlige JavaScript-tall mister presisjon over 9007199254740991 (2 opphøyd i 53, minus 1). For eksempel returnerer parseInt('ffffffffffffffff', 16) verdien 18446744073709552000, mens den riktige verdien, det største fortegnsløse 64-bits heltallet, er 18446744073709551615.

Et negativt tall konverteres med minustegnet, så -255 er -ff i hex. Dette er ikke toerkomplementet som brukes for heltall med fast bredde i minnet. For å få det legger du først til 2 opphøyd i bredden: for 8 bit er -1 + 256 = 255, som er ff. Bare hele tall støttes, ikke brøker. Alt kjører i nettleseren din.

Konvertering mellom tallsystemer i kode

// JavaScript
parseInt('ff', 16);                          // 255
(255).toString(2);                           // '11111111'
BigInt('0xffffffffffffffff').toString(10);   // '18446744073709551615'

# Python
int('ff', 16)                  # 255
bin(255), oct(255), hex(255)   # ('0b11111111', '0o377', '0xff')

Ofte stilte spørsmål

Hvordan konverterer jeg binær til desimal?

Skriv inn binærtallet, velg grunntall 2 og les av det desimale resultatet. For hånd legger du sammen plassverdiene til hvert 1-siffer: 1010 binært er 8 + 2 = 10.

Hvordan konverterer jeg desimal til hex?

Skriv inn tallet med grunntall 10 valgt, og les av hex-resultatet. For hånd deler du på 16 gang på gang og skriver restene i omvendt rekkefølge: 255 delt på 16 er 15 med rest 15, som gir ff.

Finnes det en grense for hvor stort tallet kan være?

Det finnes ingen fast grense. Verktøyet bruker BigInt-aritmetikk, så et tall med hundrevis av sifre konverteres nøyaktig. Svært lange tall tar bare litt lengre tid.

Hvorfor er hex-verdien av 255 her annerledes enn i Base16-koderen?
Denne siden konverterer tallet 255, som er ff. Base16-koderen konverterer teksten 255, tre tegn med bytene 32 35 35. Bruk det verktøyet som passer til dataene dine.
Kan jeg konvertere tall med desimaler?

Nei. Konverteren fungerer bare med heltall. Brøker som 0,1 har ofte ingen eksakt representasjon med et annet grunntall, så de faller utenfor det verktøyet kan håndtere.