Conversor de bases numéricas

Digite um número inteiro em qualquer base de 2 a 36 ou em Base62 e veja-o em binário, octal, decimal, hexadecimal, Base36 e Base62 de uma vez. Números de qualquer tamanho são convertidos com exatidão.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Digite o número que você quer converter.
  2. Em Base de entrada, selecione a base em que ele está escrito, de 2 a 36 ou Base62.
  3. Leia o resultado em binário, octal, decimal, hex, Base36 e Base62 ao mesmo tempo.
  4. 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?
Esta página converte o número 255, que é ff. O codificador Base16 converte o texto 255, três caracteres cujos bytes são 32 35 35. Use o que corresponder aos seus dados.
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.