> base36 | 0-9,A-Z | compacto <
// Base36 - codificação alfanumérica compacta usando dígitos 0-9 e letras A-Z
Somente alfanumérico
Usa apenas letras A-Z e dígitos 0-9, compatível com bancos de dados, sistemas legados e formatos de texto puro.
Representação compacta
Mais compacto que decimal para números grandes, mantendo as strings curtas e fáceis de compartilhar.
Seguro para URLs
Sem caracteres especiais – ideal para links curtos, identificadores públicos, códigos de produto e chaves de licença.
>> informações técnicas
Como o Base36 funciona:
Base36 é um sistema de numeração em base 36 que usa 36 símbolos (0-9 e A-Z). Cada posição representa uma potência de 36, permitindo comprimir números grandes em strings alfanuméricas curtas e legíveis.
Exemplos Base36:
Números para Base36: 123 → 3F 1000 → RS 999999 → LFLR Texto para Base36 (via bytes): Hi → 1Q5 ABC → 3O0AF Usos comuns: - IDs de vídeo - URLs curtas - Tokens de sessão - Códigos de produto - Chaves de licença
Por que usar Base36:
- ▸Gerar identificadores curtos e legíveis a partir de números
- ▸Criar tokens seguros para URLs sem caracteres especiais
- ▸Compactar valores numéricos em strings alfanuméricas curtas
- ▸Geralmente não diferencia maiúsculas/minúsculas, reduzindo erros de capitalização
- ▸Alternativa mais amigável que hexadecimal para alguns casos de uso
>> perguntas frequentes
O que é Base36?
Base36 é um sistema de numeração posicional que usa 36 símbolos distintos: os dígitos 0-9 e as letras A-Z. Ele oferece uma maneira compacta de representar números usando apenas caracteres alfanuméricos.
Onde o Base36 é usado na prática?
Base36 é amplamente usado para gerar IDs curtas, como URLs encurtadas, identificadores públicos, códigos de produto e tokens de sessão que precisam ser fáceis de ler e compartilhar.
Base36 diferencia maiúsculas de minúsculas?
Na maioria das implementações, Base36 é insensível a maiúsculas/minúsculas: A-Z e a-z são tratados da mesma forma. Isso reduz erros quando sistemas ou usuários alteram a capitalização.
Como o Base36 se compara a outros esquemas de codificação?
Base36 é mais compacto que decimal (base10), mas menos que hexadecimal (base16) ou Base64. Ele equilibra compacidade e legibilidade ao usar apenas caracteres alfanuméricos.
// Referência rápida
| 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 |
// Exemplos de código
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)
>> Mais perguntas
P: Como escrever Base36 em JavaScript, Python ou Java?
R: JavaScript, Java, PHP e Go têm suporte nativo: (123).toString(36) retorna "3f" e parseInt("3f", 36) volta a 123. Em Python, int(s, 36) decodifica; para codificar, escreva um pequeno laço.
P: Qual o maior inteiro que posso codificar em Base36?
R: Não há máximo teórico: Base36 é apenas uma notação posicional. Na prática, o tipo inteiro limita: em JavaScript, Number.MAX_SAFE_INTEGER (2⁵³−1) é 2gosa7pa2gv; para valores maiores use BigInt.
P: Por que IDs do YouTube e URLs curtas parecem Base36/Base62?
R: IDs curtos geralmente resultam da conversão de um inteiro grande (ID de banco de dados ou hash) para uma base maior. Base36 ignora maiúsculas; Base62 é ainda mais curto, mas diferencia maiúsculas de minúsculas.