Como usar
- Digite o número que você quer converter.
- Em Base de entrada, selecione a base em que ele está escrito, de 2 a 36 ou Base62.
- Leia o resultado em binário, octal, decimal, hex, Base36 e Base62 ao mesmo tempo.
- Para qualquer outra base, escolha-a em Base personalizada.
Números, não bytes
Esta ferramenta converte o valor de um número. O número decimal 255 é 11111111 em binário, 377 em octal, ff em hex e 73 em Base36.
Codificações de bytes como Base16 e Base2 fazem outra coisa: codificam texto ou arquivos. O texto 255 tem três caracteres, armazenados como os bytes 32 35 35 em hex, ou 00110010 00110101 00110101 em binário. Use esta página para obter o hex de um número e os codificadores de bytes para obter o hex de caracteres ou de um arquivo.
Como funcionam as bases posicionais
Em qualquer base, cada dígito vale a base elevada à potência da sua posição, contada da direita para a esquerda a partir de zero. O hex ff é 15 × 16 + 15 = 255, e o binário 11111111 é 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Bases acima de 10 continuam os dígitos com letras, então a significa 10 e z significa 35 em Base36. O Base62 acrescenta também a outra caixa das letras, então ali letras maiúsculas e minúsculas têm valores diferentes.
Um dígito hex representa exatamente 4 bits, e um dígito octal, 3 bits. É por isso que programadores usam hex e octal como uma forma curta de escrever binário: 1111 1111 vira ff, grupo por grupo.
Números grandes e negativos
O conversor usa inteiros de precisão arbitrária (BigInt do JavaScript), então números longos continuam exatos. Muitas calculadoras e os números comuns do JavaScript perdem precisão acima de 9007199254740991 (2 elevado a 53, menos 1). Por exemplo, parseInt('ffffffffffffffff', 16) retorna 18446744073709552000, enquanto o valor correto, o maior inteiro de 64 bits sem sinal, é 18446744073709551615.
Um número negativo é convertido com o sinal de menos, então -255 é -ff em hex. Isso não é a forma de complemento de dois usada para inteiros de largura fixa na memória. Para obtê-la, some antes 2 elevado à largura: para 8 bits, -1 + 256 = 255, que é ff. Apenas números inteiros são aceitos, não frações. Tudo é executado no seu navegador.
Conversão de base no código
// JavaScript
parseInt('ff', 16); // 255
(255).toString(2); // '11111111'
BigInt('0xffffffffffffffff').toString(10); // '18446744073709551615'
# Python
int('ff', 16) # 255
bin(255), oct(255), hex(255) # ('0b11111111', '0o377', '0xff')
Perguntas frequentes
Como converter binário para decimal?
Digite o número binário, selecione a base 2 e leia o resultado em decimal. À mão, some os valores posicionais de cada dígito 1: 1010 em binário é 8 + 2 = 10.
Como converter decimal para hex?
Digite o número com a base 10 selecionada e leia o resultado em hex. À mão, divida por 16 repetidamente e escreva os restos na ordem inversa: 255 dividido por 16 dá 15 com resto 15, o que resulta em ff.
Existe um limite para o tamanho do número?
Não há um limite fixo. A ferramenta usa aritmética BigInt, então um número com centenas de dígitos é convertido com exatidão. Números muito longos apenas demoram um pouco mais.
Por que o hex de 255 aqui é diferente do codificador Base16?
Posso converter números com parte fracionária?
Não. O conversor trabalha apenas com números inteiros. Frações como 0,1 muitas vezes não têm representação exata em outra base, por isso ficam fora do seu escopo.