> base36 | 0-9,A-Z | kompakt <
// Base36 – kompakt alfanumerisk kodning med siffror 0-9 och bokstäver A-Z
Endast bokstäver och siffror
Använder enbart siffror 0-9 och bokstäver A-Z, kompatibelt med databaser, URL:er och textbaserade system.
Kompakt representation
Mer kompakt än decimalrepresentation för stora tal, samtidigt som strängarna är läsbara och lätta att dela.
URL-vänligt
Inga specialtecken – idealiskt för korta länkar, publika ID:n, produktkoder och licensnycklar.
>> teknisk info
Hur Base36 fungerar:
Base36 är ett positionssystem med basen 36 och använder 36 symboler (0-9 och A-Z). Varje position representerar en potens av 36, vilket gör det möjligt att representera stora tal som korta alfanumeriska strängar.
Base36-exempel:
Tal → Base36: 123 → 3F 1000 → RS 999999 → LFLR Text → Base36 (via byte): Hi → 1Q5 ABC → 3O0AF Vanliga användningsområden: - Video-/resurs-ID:n - Korta URL:er - Sessionstoken - Produktkoder - Licensnycklar
Varför använda Base36:
- ▸Generera korta, läsbara ID:n från stora tal
- ▸Skapa URL-säkra token utan specialtecken
- ▸Komprimera numeriska värden till kompakta alfanumeriska strängar
- ▸Ofta skiftlägesokänsligt, vilket minskar fel vid förändrad kapitalisering
- ▸Mer människovänligt än vissa rena hexadecimala representationer
>> vanliga frågor
Vad är Base36?
Base36 är ett positionssystem som använder 36 olika symboler: siffrorna 0-9 och bokstäverna A-Z. Det ger ett kompakt sätt att representera tal med enbart alfanumeriska tecken.
Var används Base36 i praktiken?
Base36 används ofta för korta publika ID:n, korta URL:er, produktkoder och sessionstoken där man vill kombinera kompakt representation med god läsbarhet.
Är Base36 skiftlägeskänsligt?
I de flesta implementationer är Base36 inte skiftlägeskänsligt – A-Z och a-z behandlas likadant, vilket minskar fel orsakade av olika skrivsätt.
Hur står sig Base36 jämfört med andra kodningar?
Base36 är mer kompakt än decimal (bas 10), men mindre kompakt än hexadecimal (bas 16) eller Base64. Det ger en bra balans mellan kompakt representation och läsbarhet.
// Snabbreferens
| DEC | HEX | Base36 | Base62 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 35 | 23 | z | z |
| 36 | 24 | 10 | A |
| 100 | 64 | 2s | 1c |
| 1000 | 3e8 | rs | G8 |
| 123456789 | 75bcd15 | 21i3v9 | 8M0kX |
| 4294967295 | ffffffff | 1z141z3 | 4gfFC3 |
// Kodexempel
JavaScript (123).toString(36) // "3f" parseInt("3f", 36) // 123
Python int("3f", 36) // 123 (no built-in int -> base36; write a loop)
Java Integer.toString(123, 36) Long.parseLong("3f", 36)
PHP base_convert("123", 10, 36)
Go strconv.FormatInt(123, 36) strconv.ParseInt("3f", 36, 64)
>> Fler frågor
F: Hur skriver jag Base36 i JavaScript, Python eller Java?
S: JavaScript, Java, PHP och Go har det inbyggt: (123).toString(36) ger "3f" och parseInt("3f", 36) ger 123 igen. I Python avkodar int(s, 36); för kodning skriver du en liten loop.
F: Vilket är det största heltalet jag kan koda i Base36?
S: Det finns inget teoretiskt maximum, Base36 är bara positionsskrift. I praktiken begränsar heltalstypen: i JavaScript är Number.MAX_SAFE_INTEGER (2⁵³−1) lika med 2gosa7pa2gv; för större värden används BigInt.
F: Varför ser YouTube-ID:n och korta länkar ut som Base36/Base62?
S: Korta ID:n skapas oftast genom att ett stort heltal (databas-ID eller hash) konverteras till en högre bas. Base36 ignorerar skiftläge; Base62 är ännu kortare men skiljer på versaler och gemener.