> base36 | 0-9,A-Z | compact <
// Encodage Base36 - représentation alphanumérique compacte avec chiffres 0-9 et lettres A-Z
Seulement alphanumérique
Utilise uniquement les lettres A-Z et les chiffres 0-9, compatible avec la plupart des systèmes et bases de données.
Représentation compacte
Plus compact que le décimal pour les grands nombres, tout en restant lisible et facile à partager.
Adapté au Web
Aucun caractère spécial : parfait pour les URLs, les identifiants publics et les codes produits.
>> informations techniques
Fonctionnement de Base36:
Base36 est un système de numération en base 36 qui utilise 36 symboles distincts (0-9 et A-Z). Chaque position représente une puissance de 36, ce qui permet de compresser de grands nombres en chaînes alphanumériques courtes et lisibles.
Exemples Base36:
Nombres vers Base36 : 123 → 3F 1000 → RS 999999 → LFLR Texte vers Base36 (via les octets) : Hi → 1Q5 ABC → 3O0AF Utilisations courantes : - Identifiants de vidéos - URLs courtes - Jetons de session - Codes produits - Clés de licence
Pourquoi utiliser Base36:
- ▸Générer des identifiants courts et lisibles à partir de grands nombres
- ▸Créer des jetons sûrs pour les URLs sans caractères spéciaux
- ▸Compresser des valeurs numériques en chaînes alphanumériques compactes
- ▸Encodage généralement insensible à la casse, robuste pour de nombreux systèmes
- ▸Alternative plus conviviale que l'hexadécimal pour certains cas d'usage
>> questions fréquentes
Qu'est-ce que Base36 ?
Base36 est un système de numération positionnel qui utilise 36 symboles distincts : les chiffres 0-9 et les lettres A-Z. Il permet de représenter des nombres sous forme de chaînes alphanumériques compactes.
Dans quels cas Base36 est-il utilisé ?
Base36 est couramment utilisé pour générer des identifiants courts (liens raccourcis, IDs publics), des codes produits, des jetons de session ou toute valeur qui doit être à la fois compacte et lisible.
Base36 est-il sensible à la casse ?
Dans la plupart des implémentations, Base36 est insensible à la casse : A-Z et a-z sont traités de la même façon. Cela évite les erreurs lorsque la casse est modifiée par un système ou un utilisateur.
Comment Base36 se compare-t-il aux autres encodages ?
Base36 est plus compact que le décimal (base10), mais moins que l'hexadécimal (base16) ou Base64. Il offre un bon compromis entre compacité et lisibilité en n'utilisant que des caractères alphanumériques.
// Aide-mémoire
| 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 |
// Exemples de code
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)
>> Autres questions
Q : Comment écrire du Base36 en JavaScript, Python ou Java ?
R : JavaScript, Java, PHP et Go l’intègrent : (123).toString(36) donne "3f" et parseInt("3f", 36) redonne 123. En Python, int(s, 36) décode ; pour encoder, écrivez une petite boucle.
Q : Quel est le plus grand entier encodable en Base36 ?
R : Il n’y a pas de maximum théorique : Base36 n’est qu’une notation positionnelle. En pratique, c’est le type entier qui limite : en JavaScript, Number.MAX_SAFE_INTEGER (2⁵³−1) donne 2gosa7pa2gv ; au-delà, utilisez BigInt.
Q : Pourquoi les ID YouTube et les URL courtes ressemblent-ils à du Base36/Base62 ?
R : Les ID courts s’obtiennent en convertissant un grand entier (ID de base de données ou hash) dans une base plus élevée. Base36 ignore la casse ; Base62 est encore plus court mais distingue majuscules et minuscules.