> base36 | 0-9,A-Z | kompakt <
// Base36 – kompakt alfanumerisk kodning med cifre 0-9 og bogstaver A-Z
Kun bogstaver og tal
Bruger kun cifre 0-9 og bogstaver A-Z og er derfor kompatibelt med databaser, URL'er og tekstbaserede systemer.
Kompakt repræsentation
Mere kompakt end decimalnotation for store tal, samtidig med at strengene forbliver letlæselige.
URL-venligt
Ingen specialtegn – ideelt til korte links, offentlige ID'er, produktkoder og licensnøgler.
>> teknisk info
Hvordan Base36 fungerer:
Base36 er et positionssystem med base 36, som bruger 36 symboler (0-9 og A-Z). Hver position repræsenterer en potens af 36, hvilket gør det muligt at repræsentere store tal som korte alfanumeriske strenge.
Base36-eksempler:
Tal → Base36: 123 → 3F 1000 → RS 999999 → LFLR Tekst → Base36 (via bytes): Hi → 1Q5 ABC → 3O0AF Typiske anvendelser: - Video-/ressource-ID'er - Korte URL'er - Sessionstoken - Produktkoder - Licensnøgler
Hvorfor bruge Base36:
- ▸Generer korte, læsbare ID'er ud fra store tal
- ▸Skab URL-sikre token uden specialtegn
- ▸Komprimer numeriske værdier til kompakte alfanumeriske strenge
- ▸Ofte ikke versalfølsomt, hvilket reducerer fejl pga. forskellig kapitalisering
- ▸Mere menneskevenlig end mange rene hexadecimale repræsentationer
>> ofte stillede spørgsmål
Hvad er Base36?
Base36 er et positionssystem, der bruger 36 forskellige symboler: cifrene 0-9 og bogstaverne A-Z. Det giver en kompakt måde at repræsentere tal med kun alfanumeriske tegn.
Hvor bruges Base36 i praksis?
Base36 anvendes ofte til korte offentlige ID'er, korte URL'er, produktkoder og sessionstoken, hvor man ønsker både kompakthed og læsbarhed.
Er Base36 versalfølsom?
I de fleste implementeringer er Base36 ikke versalfølsom – A-Z og a-z behandles ens, hvilket mindsker fejl pga. forskellig brug af store/små bogstaver.
Hvordan klarer Base36 sig sammenlignet med andre kodninger?
Base36 er mere kompakt end decimal (base10), men mindre kompakt end hexadecimal (base16) eller Base64. Det giver en god balance mellem kompakthed og læsbarhed ved kun at bruge alfanumeriske tegn.
// Hurtig reference
| 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 |
// Kodeeksempler
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)
>> Flere spørgsmål
S: Hvordan skriver jeg Base36 i JavaScript, Python eller Java?
S: JavaScript, Java, PHP og Go har det indbygget: (123).toString(36) giver "3f", og parseInt("3f", 36) giver 123 igen. I Python afkoder int(s, 36); til kodning skriver du en lille løkke.
S: Hvad er det største heltal, jeg kan kode i Base36?
S: Der er intet teoretisk maksimum, Base36 er blot positionsnotation. I praksis begrænser heltalstypen: i JavaScript er Number.MAX_SAFE_INTEGER (2⁵³−1) lig med 2gosa7pa2gv; til større værdier bruges BigInt.
S: Hvorfor ligner YouTube-ID’er og korte links Base36/Base62?
S: Korte ID’er skabes oftest ved at konvertere et stort heltal (database-ID eller hash) til en højere base. Base36 ignorerer store/små bogstaver; Base62 er endnu kortere, men skelner.