Sådan bruger du værktøjet
- Indtast det tal, du vil konvertere.
- Vælg under Inputbase, hvilken base tallet er skrevet i, fra 2 til 36 eller Base62.
- Aflæs resultatet som binært, oktalt, decimalt, hex, Base36 og Base62 på samme tid.
- Har du brug for en anden base, så vælg den under Valgfri base.
Tal, ikke bytes
Dette værktøj konverterer værdien af et tal. Decimaltallet 255 skrives 11111111 binært, 377 oktalt, ff i hex og 73 i Base36.
Bytekodninger som Base16 og Base2 gør noget andet: De koder tekst eller filer. Teksten 255 er tre tegn, der gemmes som de tre bytes 32 35 35 i hex eller 00110010 00110101 00110101 binært. Brug denne side, når du vil have hex for et tal, og bytekoderne, når du vil have hex for tegn eller en fil.
Sådan fungerer positionstalsystemer
I alle baser vægtes hvert ciffer med basen opløftet i cifrets position, talt fra højre og startende ved nul. Hex ff er 15 × 16 + 15 = 255, og binært 11111111 er 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Baser over 10 fortsætter cifrene med bogstaver, så a betyder 10 og z betyder 35 i Base36. Base62 bruger desuden både store og små bogstaver, så de har forskellige værdier der.
Ét hexciffer står for præcis 4 bit og ét oktalt ciffer for 3 bit. Derfor bruger programmører hex og oktal som en kort måde at skrive binære tal på: 1111 1111 bliver til ff gruppe for gruppe.
Store og negative tal
Konverteren bruger heltal med vilkårlig præcision (JavaScript BigInt), så lange tal forbliver nøjagtige. Mange lommeregnere og almindelige JavaScript-tal mister præcision over 9007199254740991 (2 i 53. potens minus 1). For eksempel returnerer parseInt('ffffffffffffffff', 16) 18446744073709552000, mens den korrekte værdi, det største fortegnsløse 64-bit-heltal, er 18446744073709551615.
Et negativt tal konverteres med sit minustegn, så -255 er -ff i hex. Det er ikke den toerkomplementform, der bruges til heltal med fast bredde i hukommelsen. Vil du have den, skal du først lægge 2 opløftet i bredden til: For 8 bit er -1 + 256 = 255, hvilket er ff. Kun hele tal understøttes, ikke brøker. Alt kører i din browser.
Basekonvertering 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 stillede spørgsmål
Hvordan konverterer jeg binær til decimal?
Indtast det binære tal, vælg base 2, og aflæs det decimale resultat. I hånden lægger du positionsværdierne for alle 1-cifre sammen: 1010 binært er 8 + 2 = 10.
Hvordan konverterer jeg decimal til hex?
Indtast tallet med base 10 valgt, og aflæs hex-resultatet. I hånden dividerer du gentagne gange med 16 og skriver resterne i omvendt rækkefølge: 255 divideret med 16 er 15 med rest 15, hvilket giver ff.
Er der en grænse for, hvor stort tallet må være?
Der er ingen fast grænse. Værktøjet bruger BigInt-aritmetik, så et tal med hundredvis af cifre konverteres nøjagtigt. Meget lange tal tager blot lidt længere tid.
Hvorfor er hex for 255 her anderledes end i Base16-koderen?
Kan jeg konvertere tal med decimaler?
Nej. Konverteren arbejder kun med heltal. Brøker som 0,1 kan ofte ikke repræsenteres nøjagtigt i en anden base, så de ligger uden for værktøjets formål.