← Início

Web e números

Bases numéricas

Binário, octal, decimal e hexadecimal com inteiros de tamanho arbitrário.

Como funciona

Converter um número de uma base para outra é tarefa diária ao ler um dump de memória, conferir permissões, depurar um protocolo binário ou interpretar um código de cor ou de erro. Digite um número e a ferramenta mostra ao mesmo tempo em decimal, hexadecimal, binário e octal, com os dígitos agrupados para facilitar a leitura: hexadecimal e binário em grupos de quatro e decimal com separador de milhar.

A base de entrada é detectada pelo prefixo, como na maioria das linguagens: 0x para hexadecimal, 0b para binário e 0o para octal. Se preferir, fixe a base manualmente. Cada representação é copiada com o prefixo, pronta para colar no código.

Os números são tratados com BigInt, então não há limite prático de tamanho nem perda de precisão: um uint64 máximo ou um hash de 256 bits são convertidos exatos, algo que o Number não consegue acima de 2^53. Você também vê quantos bits e bytes o valor ocupa e, quando é um ponto de código válido, o caractere Unicode que ele representa, útil para identificar um emoji ou um caractere invisível pelo código.

Tudo é calculado no seu navegador enquanto você digita.

Exemplos

Um byte em todas as bases

Entrada
255
Resultado
Decimal        255
Hexadecimal    FF
Binário        1111 1111
Octal          377
8 bits · 1 byte · U+00FF ÿ

Um inteiro de 64 bits sem perder precisão

Entrada
18446744073709551615
Resultado
Hexadecimal    FFFF FFFF FFFF FFFF
Octal          1777777777777777777777
64 bits · 8 bytes

Perguntas frequentes

Existe limite de tamanho?

Na prática, não. A conversão usa BigInt, então inteiros de 64, 128 ou mais bits são convertidos sem o arredondamento que o Number sofre acima de 2^53.

Como a base de entrada é detectada?

No modo automático, o prefixo decide: 0x é hexadecimal, 0b binário e 0o octal; sem prefixo, é lido como decimal. Você também pode fixar a base manualmente, por exemplo para ler ff sem o 0x.

Aceita números negativos?

Sim. O sinal é mantido em todas as representações; a ferramenta não aplica complemento de dois.