Talbaskonverterare

Ange ett heltal i valfri bas från 2 till 36 eller Base62 och se det som binärt, oktalt, decimalt, hexadecimalt, Base36 och Base62 på en gång. Tal av valfri längd konverteras exakt.

Körs helt i din webbläsare. Inget laddas upp.

Så använder du verktyget

  1. Ange talet du vill konvertera under Tal.
  2. Välj under Talbas för indata vilken bas talet är skrivet i, från 2 till 36 eller Base62.
  3. Läs av resultatet som binärt, oktalt, decimalt, hex, Base36 och Base62 samtidigt.
  4. Om du behöver en annan bas väljer du den under Anpassad talbas.

Tal, inte byte

Det här verktyget konverterar ett tals värde. Decimaltalet 255 är 11111111 binärt, 377 oktalt, ff i hex och 73 i Base36.

Bytekodningar som Base16 och Base2 gör något annat: de kodar text eller filer. Texten 255 består av tre tecken som lagras som bytena 32 35 35 i hex, eller 00110010 00110101 00110101 binärt. Använd den här sidan för hexvärdet av ett tal, och bytekodarna för hexvärdet av tecken eller en fil.

Så fungerar positionssystem

I varje bas är en siffra värd basen upphöjd till siffrans position, räknat från höger med start på noll. Hex ff är 15 × 16 + 15 = 255, och binärt 11111111 är 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Baser över 10 fortsätter siffrorna med bokstäver, så a betyder 10 och z betyder 35 i Base36. Base62 lägger dessutom till det andra skiftläget, så versaler och gemener har olika värden där.

En hexsiffra motsvarar exakt 4 bitar och en oktal siffra 3 bitar. Därför använder programmerare hex och oktalt som ett kortare sätt att skriva binärt: 1111 1111 blir ff grupp för grupp.

Stora och negativa tal

Konverteraren använder heltal med godtycklig precision (JavaScript BigInt), så långa tal förblir exakta. Många miniräknare och vanliga JavaScript-tal tappar precision över 9007199254740991 (2 upphöjt till 53, minus 1). Till exempel returnerar parseInt('ffffffffffffffff', 16) 18446744073709552000, medan det korrekta värdet, det största osignerade 64-bitarsheltalet, är 18446744073709551615.

Ett negativt tal konverteras med sitt minustecken, så -255 är -ff i hex. Det är inte den tvåkomplementsform som används för heltal med fast bredd i minnet. För att få den lägger du först till 2 upphöjt till bredden: för 8 bitar är -1 + 256 = 255, vilket är ff. Bara heltal stöds, inte bråktal. Allt körs i din webbläsare.

Baskonvertering i programkod

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

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

Vanliga frågor

Hur konverterar jag binärt till decimalt?

Ange det binära talet, välj Binärt (2) under Talbas för indata och läs av det decimala resultatet. För hand lägger du ihop positionsvärdena för varje siffra 1: 1010 binärt är 8 + 2 = 10.

Hur konverterar jag decimalt till hex?

Ange talet med Decimalt (10) valt och läs av det hexadecimala resultatet. För hand delar du upprepade gånger med 16 och skriver resterna i omvänd ordning: 255 delat med 16 är 15 med resten 15, vilket ger ff.

Finns det någon gräns för hur stort talet får vara?

Det finns ingen fast gräns. Verktyget använder BigInt-aritmetik, så ett tal med hundratals siffror konverteras exakt. Mycket långa tal tar bara lite längre tid.

Varför skiljer sig hexvärdet av 255 här från Base16-kodaren?
Den här sidan konverterar talet 255, vilket är ff. Base16-kodaren konverterar texten 255, tre tecken vars byte är 32 35 35. Använd det verktyg som passar din data.
Kan jag konvertera tal med decimaler?

Nej. Konverteraren fungerar bara med heltal. Bråktal som 0,1 saknar ofta en exakt representation i en annan bas, så de ligger utanför verktygets område.