> base36 | 0-9,A-Z | compatto <
// Base36 - codifica alfanumerica compatta con cifre 0-9 e lettere A-Z
Solo caratteri alfanumerici
Utilizza solo lettere A-Z e cifre 0-9, compatibile con database, URL e sistemi legacy.
Rappresentazione compatta
Più compatto dei numeri decimali per valori grandi, mantenendo le stringhe leggibili e facili da condividere.
Ottimizzato per il web
Nessun carattere speciale: ideale per URL brevi, identificatori pubblici, codici prodotto e chiavi di licenza.
>> informazioni tecniche
Come funziona Base36:
Base36 è un sistema di numerazione in base 36 che usa 36 simboli (0-9 e A-Z). Ogni posizione rappresenta una potenza di 36, permettendo di comprimere numeri grandi in stringhe alfanumeriche brevi e leggibili.
Esempi Base36:
Numeri in Base36: 123 → 3F 1000 → RS 999999 → LFLR Testo in Base36 (via byte): Hi → 1Q5 ABC → 3O0AF Uso tipico: - ID video - URL accorciate - Token di sessione - Codici prodotto - Chiavi di licenza
Perché usare Base36:
- ▸Generare identificatori brevi e leggibili a partire da numeri
- ▸Creare token sicuri per URL senza caratteri speciali
- ▸Comprimere valori numerici in stringhe alfanumeriche compatte
- ▸In genere non sensibile al case, riduce errori dovuti alle maiuscole
- ▸Alternativa più leggibile rispetto a rappresentazioni puramente esadecimali
>> domande frequenti
Che cos'è Base36?
Base36 è un sistema di numerazione posizionale che utilizza 36 simboli distinti: le cifre 0-9 e le lettere A-Z. Fornisce un modo compatto per rappresentare numeri usando solo caratteri alfanumerici.
Dove viene usato Base36?
Base36 è ampiamente usato per generare identificatori brevi, come URL accorciate, ID pubbliche, codici prodotto e token di sessione che devono essere leggibili e facili da condividere.
Base36 è sensibile alle maiuscole?
Nella maggior parte delle implementazioni Base36 non distingue tra maiuscole e minuscole: A-Z e a-z sono trattate allo stesso modo, rendendo il sistema più robusto rispetto alle modifiche di capitalizzazione.
Come si confronta Base36 con altri schemi di codifica?
Base36 è più compatto del decimale (base10), ma meno di esadecimale (base16) o Base64. Offre un buon compromesso tra compattezza e leggibilità utilizzando solo caratteri alfanumerici.
// Riferimento rapido
| 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 |
// Esempi di codice
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)
>> Altre domande
D: Come si scrive Base36 in JavaScript, Python o Java?
R: JavaScript, Java, PHP e Go lo supportano nativamente: (123).toString(36) restituisce "3f" e parseInt("3f", 36) torna a 123. In Python int(s, 36) decodifica; per codificare serve un piccolo ciclo.
D: Qual è il massimo intero codificabile in Base36?
R: Non esiste un massimo teorico: Base36 è solo una notazione posizionale. In pratica limita il tipo intero: in JavaScript Number.MAX_SAFE_INTEGER (2⁵³−1) è 2gosa7pa2gv; per valori maggiori usa BigInt.
D: Perché gli ID di YouTube e gli URL brevi sembrano Base36/Base62?
R: Gli ID brevi nascono di solito convertendo un intero grande (ID del database o hash) in una base più alta. Base36 ignora le maiuscole; Base62 è ancora più corto ma le distingue.