Conversor de bases numéricas: binário, hexadecimal, decimal, octal e bases 2–36
Converta inteiros de qualquer tamanho entre binário, octal, decimal, hexadecimal, base 32, base 36 e qualquer base de 2 a 36, com visualização em complemento de dois.
Digite em qualquer campo. São aceitos os prefixos 0x, 0b e 0o, um sinal de menos no início e espaços, vírgulas ou sublinhados entre os dígitos.
16 bits · 2 bytes (magnitude) · 5 dígitos decimais
Complemento de dois (largura fixa)
| Largura | Padrão de bits | Hex | Com sinal | Sem sinal |
|---|---|---|---|---|
| 8 bits overflow, truncado | 1110 1111 | 0xEF | -17 | 239 |
| 16 bits | 1011 1110 1110 1111 | 0xBEEF | -16657 | 48879 |
| 32 bits | 0000 0000 0000 0000 1011 1110 1110 1111 | 0x0000BEEF | 48879 | 48879 |
| 64 bits | 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1011 1110 1110 1111 | 0x000000000000BEEF | 48879 | 48879 |
Fora do intervalo de uma largura, o padrão mostra só os bits menos significativos, que é o que um cast para int8_t/int16_t/int32_t/int64_t faz em C, Java ou Go.
Funciona totalmente no seu navegador. Nada do que você digita é enviado para nós nem armazenado. Ver todas as ferramentas grátis.
Encontrou um problema ou algo que poderia ser melhor? Lemos todas as mensagens e corrigimos rápido.
Este conversor de bases numéricas mostra um inteiro em binário, octal, decimal, hexadecimal, base 32 e base 36 ao mesmo tempo, além de qualquer base de 2 a 36 que você escolher. Todas as linhas são editáveis: digite um valor hexadecimal no campo hexadecimal e o binário, o decimal e os demais se atualizam. Prefixos como 0x e 0b, sinal de menos e espaços, vírgulas ou sublinhados entre os dígitos são aceitos, então você pode colar direto do código ou de um datasheet. Para converter muitos valores de uma vez, mude para “Lista de números (em lote)”, cole um número por linha e receba uma tabela com todas as bases, que você pode copiar ou baixar em CSV.
Os números são tratados como inteiros de precisão arbitrária, então um ID de 64 bits, um hash de 256 bits ou um decimal de 300 dígitos são convertidos com exatidão, enquanto ferramentas baseadas nos números comuns do JavaScript arredondam silenciosamente qualquer coisa acima de 9.007.199.254.740.991. A tabela de complemento de dois mostra como o valor é armazenado em inteiros de 8, 16, 32 e 64 bits, com e sem sinal, e sinaliza overflow. Frações são recusadas com uma explicação em vez de convertidas de forma aproximada: muitas frações decimais não têm forma binária exata.
Como usar
- Digite um número no campo da base em que ele está escrito, por exemplo 0xBEEF em Hexadecimal ou 1011 em Binário.
- Leia as outras bases nos outros campos; copie qualquer uma com o botão ao lado.
- Para uma base incomum, escolha-a no menu Qualquer base e digite nesse campo.
- Confira a tabela de complemento de dois para ver o padrão de bits numa largura fixa, ou como um número negativo fica em hexadecimal.
- Desative o agrupamento de dígitos se precisar da string pura para usar no código.
Perguntas frequentes
Posso converter uma lista de números de uma vez?
Sim. Escolha "Lista de números (em lote)", cole até 2.000 números, um por linha, e selecione a base de entrada (ou deixe em Automático, que lê os prefixos 0x, 0b e 0o). Cada linha é convertida para decimal, binário, octal, hexadecimal, base 32, base 36 e mais uma base à sua escolha; uma linha que não puder ser lida mostra o próprio erro e as demais são convertidas mesmo assim. Copie a tabela ou baixe em CSV.
Como converter binário para decimal?
Multiplique cada dígito binário por 2 elevado à sua posição, contando a partir de 0 pela direita, e some os resultados. Para 1011: 1×8 + 0×4 + 1×2 + 1×1 = 11. Ou digite no campo Binário acima e leia o campo Decimal.
Como converter hexadecimal para decimal?
Cada dígito hexadecimal vale 16 vezes o dígito à sua direita, e A–F representam 10–15. Para 0x2F: 2×16 + 15 = 47. Cada dígito hexadecimal também corresponde a exatamente quatro dígitos binários (F = 1111), e é por isso que o hexadecimal é usado como forma compacta de escrever binário.
O que é complemento de dois?
É como os computadores armazenam inteiros negativos. Num inteiro de n bits, um número negativo −x é armazenado como 2^n − x. Assim, −1 em 8 bits é 11111111 (0xFF), e −128 é 10000000. O mesmo padrão de bits é lido como 255 sem sinal ou −1 com sinal; a tabela mostra os dois. A vantagem é que adição e subtração funcionam do mesmo jeito para valores com e sem sinal.
Por que meu conversor dá resultados errados com números grandes?
A maioria dos conversores usa números do JavaScript, que são de ponto flutuante de 64 bits e representam inteiros com exatidão só até 2^53 − 1 (9.007.199.254.740.991). Acima disso, os dígitos são arredondados silenciosamente, então um ID de banco de dados de 64 bits ou um snowflake ID do Twitter/X é convertido errado. Este conversor usa BigInt, que não tem limite de tamanho.
Posso converter frações como 0,1 para binário?
Aqui não, de propósito. 0,1 em decimal é uma fração periódica em binário (0,000110011…), então qualquer resposta finita é uma aproximação, e é justamente esse arredondamento que faz 0.1 + 0.2 não dar 0.3 na maioria das linguagens de programação. Esta ferramenta converte inteiros com exatidão; para trabalhar com frações, transforme-as em inteiros antes (por exemplo, guarde centavos em vez de reais).
Onde cada base aparece
• Binário (base 2): flags de bits, máscaras de rede, registradores de hardware, campos de bits de permissões.
• Octal (base 8): permissões de arquivos no Unix, em que 755 significa rwxr-xr-x porque cada dígito octal tem exatamente três bits (dono, grupo, outros).
• Hexadecimal (base 16): endereços de memória, códigos de cor (#244B3F), dumps de bytes, hashes, endereços MAC e code points Unicode (U+1F332).
• Base 32 (0–9, A–V): identificadores compactos. Observe que o Base32 da RFC 4648 usado em segredos TOTP é uma codificação de bytes com o alfabeto A–Z, 2–7, não esta base numérica.
• Base 36 (0–9, A–Z): a representação alfanumérica mais compacta que não diferencia maiúsculas de minúsculas, usada em IDs curtos e encurtadores de URL; o Number.prototype.toString(36) do JavaScript gera essa base.
Inteiros de largura fixa e overflow
As linguagens de programação armazenam inteiros em larguras fixas: int8/uint8 (um byte), int16, int32 e int64. Um inteiro com sinal de n bits vai de −2^(n−1) a 2^(n−1) − 1, então um int8 vai de −128 a 127 e um int32 de −2.147.483.648 a 2.147.483.647. A versão sem sinal vai de 0 a 2^n − 1.
Quando um valor não cabe, a maioria das linguagens mantém só os n bits menos significativos. É por isso que 200 armazenado num int8 volta como −56, e que 2.147.483.647 + 1 num int de 32 bits vira −2.147.483.648. A tabela de complemento de dois mostra esse padrão truncado e marca a linha como overflow, o que facilita prever o resultado de um cast em C, Java, Go ou Rust.
Ferramentas grátis relacionadas
- Seletor e conversor de cores — Capture qualquer cor de qualquer lugar da tela ou converta na hora entre HEX, RGB e HSL.
- Gerador de hash — Gere hashes de textos ou arquivos com MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC32, verifique um checksum ou calcule um HMAC. Os arquivos nunca saem do seu dispositivo.
- Conversor de timestamp Unix — Converta epoch em segundos, milissegundos, microssegundos ou nanossegundos para datas em qualquer fuso horário, e vice-versa. Relógio ao vivo, modo em lote, trechos de código.
- Calculadora online — Uma calculadora limpa, no estilo do iPhone, que funciona com o teclado e o teclado numérico. Porcentagem, sinal, histórico e cópia, sem anúncios e sem instalar nada.