Conversor de Bases Numéricas: Binário, Decimal, Hex e Octal
Converta números entre decimal, binário, hexadecimal e octal instantaneamente. Informe o valor e a base de origem e veja todas as representações em paralelo. Processamento 100% local.

Gostou? Mostre pra todo mundo
Gere um card bonito com a marca do ValorFinal para postar nos Stories ou mandar no WhatsApp. Nada que você digitou aparece no card.
Converter de base é reescrever o mesmo número com outra quantidade de símbolos: 2 no binário, 8 no octal, 10 no decimal e 16 no hexadecimal. O valor não muda, só a escrita: 255, FF, 11111111 e 377 são o mesmo número.
Como funciona a conversão entre bases numéricas
A leitura usa notação posicional: cada dígito vale ele mesmo multiplicado pela base elevada à sua posição, contando da direita para a esquerda. No binário 1010, isso é 1x8 mais 0x4 mais 1x2 mais 0x1, ou seja, 10. Na prática, a conta é feita num acumulador que é multiplicado pela base e somado ao próximo dígito.
A escrita na outra base é o caminho inverso, por divisões sucessivas: o resto de cada divisão pela base nova, lido de baixo para cima, forma o número. O acumulador é um BigInt, o inteiro de precisão arbitrária do JavaScript, e é ele que garante que nada seja truncado acima de 2 elevado a 53.
O sinal de menos é separado antes da conta e recolocado depois, igual nas quatro bases. Para ver os octetos de um endereço IP em binário, veja a calculadora de sub-rede.
Fórmula
valor = soma de (dígito[i] x base^i), i contado da direita
escrita na base nova = restos das divisões sucessivas, de baixo para cima
1 dígito hexadecimal = 4 bits · 1 dígito octal = 3 bits
Base: notação posicional e a norma IEEE 754, que explica por que o ponto flutuante do JavaScript perde exatidão acima de 2 elevado a 53. Conversão determinística e local no navegador.
Limitações
- Trata números inteiros. Fração em outra base (como 0,101 em binário) e notação científica não são convertidas.
- Aceita apenas as bases 2, 8, 10 e 16, que são as usadas em computação. Bases arbitrárias, como a 36, ficam de fora.
- O campo aceita até 64 caracteres, o que já cobre um inteiro de 256 bits em hexadecimal.
- Negativo é exibido com sinal, e não em complemento de dois. Para ver a representação binária que a máquina guarda de um inteiro com sinal, o complemento precisa do tamanho da palavra (8, 16, 32 ou 64 bits), que esta ferramenta não pede.
Coloque a calculadora de Bases no seu site, de graça
Tem site, blog ou loja virtual? Esta calculadora tem uma versão para incorporar: você copia um código e cola no seu HTML. Sem cadastro, sem mensalidade e sem limite de acessos, e o cálculo acompanha a regra vigente sozinho.
calculadora de Bases para sitever todas as calculadoras para site
Calculadoras relacionadas
Guias sobre este tema
Cálculo auditável, com fórmula e fontes transparentes
Atualizado em . Fontes: IEEE 754 / MDN Web Docs / notação posicional.
Processamento local: esta ferramenta roda no seu navegador e nada é enviado a servidores automaticamente.
Referências técnicas
- MDN - parseIntTécnica
- MDN - Number.prototype.toStringTécnica
- MDN - Number.MAX_SAFE_INTEGERTécnica
- MDN, BigIntTécnica
Links externos para o que foi consultado na construção desta página, com a natureza de cada fonte identificada. O conteúdo delas pode mudar sem aviso; em caso de divergência, vale sempre a fonte primária.
Incorpore esta calculadora no seu site (grátis)
Copie e cole o código no seu site. A calculadora se atualiza sozinha. O crédito ao ValorFinal vem junto do código e a gente agradece quem mantém, mas ele é opcional: pode remover sem perder o widget. O link sai com rel="nofollow", ou seja, não transfere autoridade de busca para a gente.
Perguntas frequentes
O que é sistema de numeração binário?
O sistema binário (base 2) usa apenas os dígitos 0 e 1. É a linguagem nativa dos computadores, pois circuitos eletrônicos representam estados como ligado (1) ou desligado (0). Por exemplo, o número 255 em decimal é 11111111 em binário.
O que é sistema hexadecimal e onde é usado?
O sistema hexadecimal (base 16) usa os dígitos de 0 a 9 e as letras A a F. É amplamente usado em programação para representar cores (#FF5733), endereços de memória (0x1A3F), códigos de erro e hashes criptográficos. Um byte (8 bits) é representado por exatamente 2 dígitos hex.
O que é sistema octal?
O sistema octal (base 8) usa os dígitos de 0 a 7. Historicamente importante em Unix/Linux para permissões de arquivo (ex: chmod 755 = rwxr-xr-x). Cada dígito octal representa exatamente 3 bits binários.
Como funciona a conversão entre bases?
Cada dígito do valor informado entra num acumulador inteiro, da esquerda para a direita: o acumulado é multiplicado pela base e somado ao dígito atual. Com o número inteiro em mãos, ele é reescrito em cada uma das quatro bases. Por exemplo, o binário 1010 vira 10 em decimal e A em hexadecimal. O acumulador usa BigInt, o tipo de inteiro de precisão arbitrária do JavaScript, e por isso a conta não perde casas.
Esta ferramenta converte números negativos?
Sim, em todas as quatro bases, com o sinal de menos à esquerda. Até setembro de 2026 o negativo era aceito só em decimal e hexadecimal: a ferramenta convertia -10 em -1010 binário e depois recusava esse mesmo -1010 quando ele voltava como entrada, o que quebrava a ida e volta. Agora as quatro bases seguem a mesma regra, e o zero nunca sai com sinal: -0 é exibido como 0, porque -0 não é notação de inteiro em base nenhuma.
Quais são os limites desta ferramenta?
O limite é o tamanho do campo, 64 caracteres, e não a precisão da conta. Com BigInt não há arredondamento em número grande: 9007199254740993, que é 2 elevado a 53 mais 1, converte exato. A versão anterior passava por Number e devolvia 9007199254740992 sem avisar, um dígito errado com cara de resposta certa. Números fracionários não são convertidos: a ferramenta trata inteiros.
Por que 2 elevado a 53 é a fronteira em JavaScript?
Porque o tipo numérico padrão da linguagem é o ponto flutuante de dupla precisão do IEEE 754, que reserva 53 bits para a parte significativa. Até 9007199254740991 todo inteiro tem representação exata; acima disso, alguns inteiros deixam de existir no tipo e o valor mais próximo é usado no lugar, silenciosamente. É por isso que a conversão aqui usa BigInt, que não tem teto de precisão.