Enviar um arquivo
  1. base64hub
  2. Outras bases
  3. Base36

Codificador, decodificador e conversor Base36

Digite um texto para obter Base36, a codificação de dígitos mais letras que ignora maiúsculas e minúsculas. Mude a entrada para Inteiro (número grande) para converter números decimais de qualquer tamanho em Base36 e de volta.

Grátis sem cadastro, sem limites Local nada é enviado Sem arredondamento números BigInt de até 64 KB Atualizado 27 de out. de 2026
Entrada 0Bytes 0 BSaída 0

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como usar o conversor Base36

  1. Digite um texto em Entrada · Texto. Os bytes UTF-8 dele são codificados e o resultado aparece em Saída · Base36.
  2. Escolha minúsculas ou MAIÚSCULAS em Caixa, abaixo da saída. As duas decodificam do mesmo jeito.
  3. Para converter um número, ajuste De em Inteiro (número grande) e digite o valor decimal. Volte Para a Base36 se você o tiver mudado.
  4. Para decodificar, clique em Base36 → Texto no seletor de direção, ou ajuste Para em Inteiro (número grande) para obter o decimal.

Base36 para decimal e de volta

O Base36 conta com 0–9 e depois a–z, então a vale 10 e z vale 35. Cada posição vale 36 vezes a posição à sua direita:

Base36DecimalObservação
z35O maior dígito único
1036
zz129535 × 36 + 35
10004665636³
21i3v9123456789
2gosa7pa2gv9007199254740991Number.MAX_SAFE_INTEGER no JavaScript
3w5e11264sgsf184467440737095516152^64 − 1

O conversor trabalha com BigInt, então valores de 64 e 128 bits saem exatos. O limite é de 64 KB de entrada, muito mais que qualquer ID.

Onde o Base36 é usado

O Base36 serve para identificadores que devem ser curtos e precisam sobreviver a sistemas que mudam a caixa das letras: URLs que alguns softwares convertem para minúsculas, sistemas de arquivos que não diferenciam maiúsculas e códigos lidos em voz alta ou digitados a partir do papel. Os IDs de posts e comentários do Reddit são um exemplo. A maioria das linguagens de programação também consegue ler números Base36 sem biblioteca.

Comparado às alternativas, o Base36 abre mão de um pouco de densidade em troca de não diferenciar maiúsculas. 16 bytes aleatórios dão 24 ou 25 caracteres Base36, 21 ou 22 em Base62 e 32 em hex. O Base62 é mais curto, mas diferencia maiúsculas, e o Base32 também não diferencia, mas fixa o alfabeto em grupos de 5 bits e acrescenta preenchimento.

Texto, bytes e zeros à esquerda

Para texto e outros bytes, o conversor lê a entrada como um único número big-endian e escreve esse número em base 36. Hello são os bytes 48 65 6c 6c 6f, o número 310939249775, e em Base36 3yud78mn. Bytes zero à esquerda sumiriam num número puro, então cada um é escrito como um dígito 0: os bytes 00 0a viram 0a.

Uma entrada Inteiro (número grande) não tem o problema dos zeros à esquerda, porque um número decimal não tem bytes zero à esquerda para perder.

Base36 em JavaScript e Python

As duas linguagens convertem números nativamente:

(255).toString(36);           // '73'
parseInt("73", 36);           // 255
(2n ** 64n - 1n).toString(36) // '3w5e11264sgsf'

O BigInt consegue imprimir em base 36, mas não tem parser para ela, e o parseInt perde precisão depois de 2^53. Um loop curto resolve:

function parseBase36(s) {
  let n = 0n;
  for (const ch of s.toLowerCase()) n = n * 36n + BigInt(parseInt(ch, 36));
  return n;
}
parseBase36("3w5e11264sgsf"); // 18446744073709551615n

O int() do Python recebe uma base e funciona com qualquer tamanho: int("3w5e11264sgsf", 36) retorna 18446744073709551615. Não há função nativa para o outro sentido; um loop com divmod e o alfabeto 0123456789abcdefghijklmnopqrstuvwxyz resolve. Mais padrões nas páginas de JavaScript e Python.

Problemas comuns

  • Erro num -, _ ou espaço dentro do valor. O Base36 só tem dígitos e letras. Remova os separadores, ou divida o valor neles se eles separarem vários IDs.
  • O texto decodificado é lixo. A string provavelmente era um ID numérico, não texto codificado. Ajuste Para em Inteiro (número grande) para vê-la como número.
  • Pequenas diferenças nos últimos dígitos numa planilha ou JSON. O número passou por um double em algum lugar. Mantenha IDs grandes como strings de ponta a ponta.

Perguntas frequentes

Como converter Base36 em decimal?

Ajuste De em Base36 e Para em Inteiro (número grande), depois cole o valor Base36. zz dá 1295 e 3w5e11264sgsf dá 18446744073709551615, o maior número sem sinal de 64 bits.

O Base36 diferencia maiúsculas de minúsculas?

Não. Letras maiúsculas e minúsculas têm o mesmo valor, então ZZ e zz valem 1295. Isso faz do Base36 a codificação comum mais densa que sobrevive a mudanças de caixa.

Por que o parseInt do JavaScript dá outro número?

parseInt(s, 36) retorna um double, que só é exato até 2^53. parseInt("3w5e11264sgsf", 36) retorna 18446744073709552000, com erro de 385. Faça o parse para um BigInt, como mostrado nesta página.

Por que o Base36 de Hello não é igual a parseInt('Hello', 36)?

O codificador transforma os cinco bytes do texto num número e o escreve em base 36 (3yud78mn). Já o parseInt lê as letras H-e-l-l-o como dígitos Base36, o que dá 29234652.