encode | decode | alfanumerisk

> base36 | 0-9,A-Z | kompakt <

// Base36 – kompakt alfanumerisk kodning med cifre 0-9 og bogstaver A-Z

0 tegn
0 tegn
[ALFANUMERISK]

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]

Kompakt repræsentation

Mere kompakt end decimalnotation for store tal, samtidig med at strengene forbliver letlæselige.

[URL-SAFE]

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

DECHEXBase36Base62
0000
3523zz
362410A
100642s1c
10003e8rsG8
12345678975bcd1521i3v98M0kX
4294967295ffffffff1z141z34gfFC3

// 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.

Andre sprog

KOPIERET!