Binário, octal, decimal e hex — e qualquer base até 36
Digite um número em binário, octal, decimal, hexadecimal ou qualquer base de 2 a 36 e veja-o em todas as outras de uma vez. Os números podem ser tão grandes quanto você quiser — o conversor usa inteiros de precisão arbitrária, então um valor de 64 ou 128 bits mantém cada dígito — e números negativos aparecem em complemento de dois em 8, 16, 32, 64 e 128 bits, com uma visão de bits em que você pode clicar para inverter bits individuais. Prefixos como <code>0x</code> e separadores como <code>1_000_000</code> são reconhecidos. Tudo roda no seu navegador.
Como converter entre bases numéricas
- 1Escolha a base em que você está digitando: Bin, Oct, Dec, Hex ou Outra para qualquer base de 2 a 36.
- 2Digite ou cole o número. Sinal de menos, prefixos
0x,0be0o, e espaços, sublinhados ou vírgulas entre os dígitos são aceitos. - 3Leia o resultado em todas as bases de uma vez, com os dígitos agrupados para facilitar a leitura. Escolha outra base na última linha ou ative Todas as bases 2–36.
- 4Confira a tabela de complemento de dois para a leitura com e sem sinal em cada largura, clique nos bits da visão de bits para invertê-los e copie a forma de que precisar.
Como funcionam os sistemas posicionais
Em qualquer base, cada dígito vale a base elevada à sua posição, contando a partir de zero pela direita. Em decimal, 255 é 2×10² + 5×10¹ + 5×10⁰. Em binário, o mesmo número é 11111111: oito uns, que valem 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1. Em hexadecimal, é FF: 15×16 + 15.
Bases acima de 10 precisam de mais de dez símbolos, então as letras continuam a contagem: A é 10, B é 11 e assim por diante até Z para 35 — por isso 36 é a maior base que usa os dígitos e letras comuns. As letras são lidas sem diferenciar maiúsculas e minúsculas.
Por que programadores usam binário, octal e hex
- Binário (base 2)
- É como a máquina armazena tudo. Útil para flags de bits, máscaras e sub-redes, mas longo: um valor de 32 bits tem 32 dígitos.
- Hexadecimal (base 16)
- Cada dígito hex tem exatamente quatro bits, então um byte são dois dígitos hex e um valor de 32 bits são oito. Usado em endereços de memória, cores (#FF8800), hashes, UUIDs e dumps de bytes.
- Octal (base 8)
- Cada dígito octal tem três bits. Sobrevive principalmente nas permissões de arquivos Unix, onde 755 são três grupos de bits rwx — veja a <a href="/chmod-calculator">calculadora chmod</a>.
- Base 36 e base 62
- Identificadores compactos que não diferenciam maiúsculas, como URLs curtas e IDs, usam base 36 (0–9 e a–z). A base 62 acrescenta maiúsculas e fica fora do que esta ferramenta cobre.
Complemento de dois e números negativos
Computadores armazenam inteiros com sinal em complemento de dois: com uma largura fixa de n bits, um número negativo −x é armazenado como 2ⁿ − x. Em 8 bits, −1 é 11111111 (0xFF), −128 é 10000000 (0x80), e o bit mais alto também serve de sinal. Um inteiro com sinal de 8 bits vai de −128 a 127; os mesmos 8 bits lidos sem sinal vão de 0 a 255.
A tabela de complemento de dois mostra as duas leituras para cada largura comum. Digite 0xFFFFFFFF e você verá que é 4.294.967.295 como inteiro de 32 bits sem sinal e −1 com sinal; digite -42 e você obtém o padrão de bits em cada largura. Quando um valor é grande demais para uma largura, a linha avisa em vez de truncá-lo silenciosamente.
Números grandes e precisão
Os números comuns do JavaScript perdem precisão acima de 2⁵³ (9.007.199.254.740.992), por isso muitos conversores online erram com IDs e hashes de 64 bits. Este conversor usa BigInt em tudo, então é exato para números de qualquer tamanho — um valor de 128 bits, um hash SHA-256 lido como inteiro ou um número de 20.000 dígitos.
Só números inteiros são convertidos. Frações em outras bases raramente terminam (0,1 em decimal é uma dízima periódica infinita em binário), então, para padrões de bits de ponto flutuante e timestamps, veja o conversor de timestamp Unix.
Perguntas frequentes
- Como converter binário para decimal?
- Escolha Bin, digite o número binário e leia a linha decimal. À mão, some as potências de dois de cada 1: 1011 é 8 + 0 + 2 + 1 = 11.
- Como converter decimal para hexadecimal?
- Escolha Dec, digite o número e leia a linha hexadecimal. À mão, divida por 16 repetidamente e escreva os restos do último para o primeiro: 255 ÷ 16 = 15 resto 15, então 255 é FF.
- O que significa o prefixo 0x?
- 0x marca um número hexadecimal em C, JavaScript, Python e na maioria das linguagens, assim como 0b marca binário e 0o octal. O conversor aceita esses prefixos na entrada e pode adicioná-los na saída.
- Como os números negativos são convertidos?
- Em cada base o resultado mantém o sinal de menos, como -2A em hex. A tabela de complemento de dois e a visão de bits mostram como o mesmo número é armazenado em um inteiro com sinal de 8, 16, 32, 64 ou 128 bits.
- Por que 0xFF aparece como 255 e como -1?
- Os mesmos oito bits significam 255 quando lidos como byte sem sinal e -1 quando lidos como byte com sinal em complemento de dois. Qual está certo depende do tipo que o armazena.
- Existe limite para o tamanho do número?
- Nenhum na prática: números de até 20.000 dígitos são convertidos com exatidão, porque o conversor usa inteiros de precisão arbitrária em vez de ponto flutuante.
- Posso converter frações ou decimais?
- Não, só números inteiros. A maioria das frações não tem representação exata em outras bases, então o conversor pede um inteiro em vez de dar uma resposta arredondada.
- Minha entrada é enviada para algum lugar?
- Não. Toda a conversão acontece no seu navegador.