Conversor de base / radix
ConversãoConverte inteiros entre bases 2–62 com BigInt, então mesmo números muito grandes mantêm precisão total.
- Decimal
Nesta página
O que é um conversor de base / radix?#
Todo o número inteiro é o mesmo número; só a sua ortografia muda com a base. 255 em decimal, ff em hexadecimal, 11111111 em binário e 377 em octal são quatro strings para a mesma quantidade. Um conversor de radix traduz uma ortografia noutra — e a razão pela qual merece ser uma ferramenta real em vez de parseInt é que o Number do JavaScript perde silenciosamente precisão acima de 2^53 (cerca de 16 dígitos decimais), pelo que converter um identificador de 64 bits como 18446744073709551616 com Number simples devolve-lhe um número diferente sem aviso.
Esta página é baseada em BigInt de ponta a ponta, pelo que um número inteiro de tamanho arbitrário mantém precisão total em todas as conversões. Suporta as bases 2 a 62, usando o alfabeto canónico de dígitos 0-9 seguido de a-z e depois A-Z. Por comodidade, as bases 2 a 36 não distinguem maiúsculas (pode escrever FF para hex 255), enquanto as bases 37 a 62 distinguem — porque na base 62, o a minúsculo e o A maiúsculo são dois dígitos genuinamente diferentes (10 e 36).
Como usar#
- Escreva o Valor que quer converter. A página arranca com
255. - Defina Da base como a base em que o valor está atualmente escrito (as listas pendentes oferecem de 2 a 62; padrão 10, decimal).
- Defina Para base como a base pretendida (padrão 16, hexadecimal). A seta entre elas é apenas um auxiliar visual.
- O campo Saída mostra a ortografia convertida em tempo real, e a linha Decimal por baixo mostra o mesmo valor na base 10 — uma verificação útil quando se está convertendo entre duas bases pouco familiares.
- Exemplo recarrega o padrão, Limpar esvazia o campo. Um dígito inválido para a base escolhida é reportado na linha de estado (escrever
8na base 8, ougna base 16, não produz silenciosamente disparate).
Principais recursos#
- Precisão BigInt. A conversão corre sobre inteiros de precisão arbitrária, pelo que
2^64e superior fazem viagem de ida e volta exata. Não há precipício de 2^53 nem aproximação de vírgula flutuante. - Bases 2 a 62. Cobre binário, octal, decimal, hex, base32, base36, alfabetos estilo base58 e base62 completa — a gama que os sistemas reais realmente usam.
- Análise que respeita maiúsculas. As bases 2–36 aceitam qualquer maiúscula por comodidade; as bases 37–62 tratam a maiúscula como significativa, pelo que
aeAse mantêm dígitos distintos, correspondendo ao alfabeto canónico de 62 símbolos. - Underscores de agrupamento de dígitos tolerados. Pode colar
1_000e é lido como1000— a mesma convenção que muitas linguagens de programação usam para legibilidade. - Sensível ao sinal. Valores negativos convertem corretamente; o sinal de menos é preservado em todas as bases.
Exemplo detalhado#
Com o padrão 255, Da base 10, Para base 16, o painel mostra:
Output: ff
Decimal: 255
Mude Para base para 2 e obtém 11111111 — oito bits, o valor que cabe exatamente num byte, razão pela qual ff é uma visão tão familiar em códigos de cor e em despejos de bytes.
A verdadeira razão do BigInt aparece com um valor de 64 bits. Escreva 18446744073709551616 (que é 2^64), Da base 10, Para base 16:
Output: 10000000000000000
Decimal: 18446744073709551616
Isso é 1 seguido de dezesseis zeros — exatamente 2^64 em hexadecimal. Um conversor baseado em Number do JavaScript teria arredondado a entrada para 18446744073709552000 antes de sequer começar, e nunca teria dado por isso. Faça a viagem de volta para Da base 16 / Para base 10 e o decimal original volta inalterado — o teste que prova que nenhuma precisão se perdeu.
Perguntas frequentes#
Porque é que FF funciona em hex mas não na base 62?#
As bases 2 a 36 compartilham uma única gama de letras (a–z, mapeadas para 10–35), pelo que a maiúscula é indiferente e FF = ff = 255. A partir da base 37 o alfabeto precisa de mais de 26 letras, pelo que se estende para as maiúsculas: a=10, b=11 … z=35, A=36, B=37 … Z=61. Uma vez que ambas as maiúsculas estão em uso, a e A são dígitos diferentes, pelo que o analisador tem de preservar a maiúscula.
O que acontece se escrever um dígito inválido para a base?#
Obtém um erro claro, não uma resposta errada. Escrever 8 ou 9 com Da base definida para 8 (octal), ou g com Da base definida para 16 (hex), é rejeitado porque esses caracteres não são dígitos legais nessa base. A linha de estado indica-lhe o caráter problemático.
Porque é que a ferramenta mostra uma linha Decimal quando estou convertendo para outra base?#
Porque o decimal é a base em que os humanos raciocinam, pelo que é a verificação natural. Se converter a base-58 q para base-16 e vir 1a, a linha Decimal (26) permite confirmar “sim, o símbolo de valor ~58 significava mesmo vinte e seis” sem ter de fazer a aritmética.
Trata números fracionários como 3.14?#
Não — este conversor funciona apenas com inteiros. A conversão de radix de uma parte fracionária é um problema diferente (produz expansões infinitas periódicas na maioria das bases, como 1/3 em decimal), e truncá-la silenciosamente seria enganador. Para valores inteiros de qualquer tamanho, a conversão é exata e instantânea.