Slik bruker du verktøyet
- Skriv inn tallet du vil konvertere.
- Velg grunntallet det er skrevet med under Grunntall for inndata, fra 2 til 36 eller Base62.
- Les av resultatet som binær, oktal, desimal, hex, Base36 og Base62 på samme tid.
- 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?
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.