Ferramentas para Desenvolvedores

Conversor de Base Numérica

Converta números entre binário, octal, decimal e hexadecimal.

Avalie esta ferramenta

Como usar Conversor de Base Numérica

  1. Digite seu valor.
  2. Escolha em qual base ele está.
  3. Veja o valor nas quatro bases.

Sobre Conversor de Base Numérica

Bases diferentes existem porque leitores diferentes precisam delas. O hardware tem dois estados, então, por baixo de tudo, é binário. O hexadecimal conquista seu lugar porque um dígito hexadecimal corresponde exatamente a quatro bits — então um byte é sempre dois dígitos hexadecimais, legível de relance. Esse mapeamento limpo é o motivo de o hexadecimal aparecer em códigos de cor, endereços de memória, endereços MAC e despejos de bytes. O octal agrupa três bits por dígito, e é exatamente por isso que as permissões de arquivo no Unix se leem como 755 ou 644 — três grupos de três bits, um para usuário, grupo e outros.

Digite um valor, diga à ferramenta em qual base ele está escrito, e você recebe as quatro de uma vez. Conheça os limites reais: a entrada deve conter apenas dígitos, então nada de sinal de menos, ponto decimal ou prefixo 0x. Números negativos e frações são rejeitados em vez de adivinhados. As letras hexadecimais podem ser maiúsculas ou minúsculas; a saída hexadecimal é sempre maiúscula.

A precisão tem um teto rígido. A conversão passa por um número JavaScript — um double IEEE-754 — então os inteiros são exatos apenas até 9.007.199.254.740.991. Além disso, os valores são arredondados para o double representável mais próximo, e os últimos dígitos da saída binária ou hexadecimal ficarão errados, o que coloca um hash ou ID de 64 bits fora de alcance. Para caracteres em vez de números, use texto para binário; para códigos de cor hexadecimais, HEX para RGB. Tudo roda no seu navegador.

Perguntas frequentes

Por que os programadores usam hexadecimal em vez de binário?

Porque um dígito hexadecimal equivale exatamente a quatro bits, então o hexadecimal é uma abreviação compacta e sem perdas do binário que as pessoas conseguem ler. Um byte são dois dígitos hexadecimais, uma cor de 32 bits são oito. Traduzir entre hexadecimal e binário não exige aritmética — apenas substituição.

Posso converter números negativos ou decimais?

Não. Este conversor aceita apenas dígitos, então um sinal de menos ou um ponto decimal é rejeitado como inválido. Ele lida com números inteiros não negativos nas bases 2, 8, 10 e 16.

Por que meu valor hexadecimal muito grande está convertendo errado?

Os valores passam por um float de precisão dupla, que representa inteiros com exatidão apenas até 9.007.199.254.740.991. Qualquer coisa maior é arredondada, então os últimos dígitos da saída ficam pouco confiáveis. Um valor hexadecimal de 16 dígitos — um hash de 64 bits, por exemplo — está além desse limite.

Por que as permissões do Unix são escritas em octal?

Porque as permissões vêm em três bits — leitura, escrita, execução — e um dígito octal guarda exatamente três bits. Assim, 755 são três dígitos cobrindo usuário, grupo e outros, com 7 significando os três bits ativados.

Posso usar bases diferentes de 2, 8, 10 e 16?

Não aqui — o seletor de base de entrada oferece essas quatro, e todas as quatro aparecem na saída. Elas cobrem praticamente todo caso prático em programação.