Pack Camo

Conversor de bases numéricas

Binário, octal, decimal e hex, além de qualquer base de 2 a 36, com números grandes.

Tudo roda localmente — nada é enviado para servidor nenhum.

Conversões

16 bits · 13 bits em 1 · 5 dígitos decimais

  • Binário (base 2)
    1011 1110 1110 1111
  • Octal (base 8)
    137 357
  • Decimal (base 10)
    48 879
  • Hexadecimal (base 16)
    BEEF
  • 1 1PR

Complemento de dois

O padrão de bits em cada largura, lido como inteiro com e sem sinal. Clique em um valor hex para copiá-lo.

LarguraPadrão hexCom sinalSem sinal
8 bitsNão cabe em 8 bits.
16 bits-1665748879
32 bits4887948879
64 bits4887948879
128 bits4887948879

Bits

Clique em um bit para invertê-lo.

158
70

O bit 15 é o bit de sinal quando o valor é lido com sinal.

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

  1. 1Escolha a base em que você está digitando: Bin, Oct, Dec, Hex ou Outra para qualquer base de 2 a 36.
  2. 2Digite ou cole o número. Sinal de menos, prefixos 0x, 0b e 0o, e espaços, sublinhados ou vírgulas entre os dígitos são aceitos.
  3. 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.
  4. 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.