Conversor de Bases Numéricas
Com o conversor de bases numéricas, digite o número em qualquer uma das linhas, binário, octal, decimal, hexadecimal ou numa base livre de 2 a 36, e as outras se reescrevem. O resultado vem com a soma de potências que o explica, que é o passo que a prova cobra, e números grandes saem exatos, sem arredondamento.
Converte Binário, Octal, Decimal, Hexadecimal e outros sistemas numéricos
Exemplo: 42 em decimal é 101010 em binário e 2A em hexadecimal.
Você conseguiu resolver o seu problema?
Obrigado pela resposta.
Como funciona a conversão de base
A base diz quantos dígitos diferentes o sistema tem e de quanto em quanto cada casa vale mais que a anterior. Em decimal são dez dígitos, e cada casa vale dez vezes a anterior. Em binário são dois dígitos, e cada casa vale duas vezes. Converter de uma base para outra é reescrever o mesmo número com outros dígitos, e a conta passa sempre pelo valor do número.
Na ferramenta, cada base é uma linha, e todas são entrada e saída ao mesmo tempo: digite em qualquer uma, e as outras se reescrevem. A linha da base livre aceita qualquer base de 2 a 36, porque base 3, base 7 e base 36 aparecem em exercício de faculdade.
Sistemas de numeração: binário, octal, decimal e hexadecimal
| Base | Dígitos | Onde aparece |
|---|---|---|
| 2, binário | 0 e 1 | O que o computador guarda |
| 8, octal | 0 a 7 | Permissões de arquivo no Linux: 755, 644 |
| 10, decimal | 0 a 9 | O nosso sistema, o dos dez dedos |
| 16, hexadecimal | 0 a 9 e A a F | Cores em CSS, endereços de memória, hashes |
O teto da base livre é 36 porque é onde os dígitos acabam: dez algarismos mais vinte e seis letras. O piso é 2 porque a base 1 não é um sistema posicional: nela o cinco se escreve com cinco marcas, e não há potência de 1 para multiplicar. Em qualquer base, o maior dígito é a base menos um.
Binário para decimal: some as potências de 2
Multiplique cada dígito pela potência de 2 da posição dele, contando da direita a partir de zero, e some. O binário 101010:
Os dígitos zero ficam de fora da soma, porque somar zero não explica nada. É essa soma que a página escreve abaixo do resultado: ela é o passo do meio que o exercício pede, e é onde o erro costuma estar.
Decimal para binário: divisões sucessivas por 2
Divida o número por 2 seguidamente e anote os restos, até o quociente chegar a zero. Depois leia os restos de baixo para cima. O decimal 42:
Lendo os restos de baixo para cima: 101010. O mesmo método serve para qualquer base: para octal, divida por 8; para hexadecimal, por 16.
Hexadecimal para decimal e decimal para hexadecimal
No hexadecimal, as letras A a F valem de 10 a 15, e cada casa vale 16 vezes a anterior. O hexadecimal 2A:
No sentido contrário, divida por 16: 255 ÷ 16 dá 15 com resto 15, e 15 ÷ 16 dá 0 com resto 15. Os dois restos são F, e 255 em hexadecimal é FF, o valor máximo de cada canal de uma cor em CSS, como em #FFFFFF, o branco.
Binário para hexadecimal: de quatro em quatro dígitos
Cada dígito hexadecimal vale exatamente quatro dígitos binários, e por isso a conversão entre os dois se faz de olho, sem passar pelo decimal. Separe o binário em grupos de quatro, da direita para a esquerda, e troque cada grupo pelo dígito da tabela:
| Binário | Hexadecimal | Decimal |
|---|---|---|
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | A | 10 |
| 1011 | B | 11 |
| 1100 | C | 12 |
| 1101 | D | 13 |
| 1110 | E | 14 |
| 1111 | F | 15 |
O binário 1010 1010 vira AA; 0010 1010 vira 2A. É por isso que a ferramenta mostra o binário em grupos de quatro e o hexadecimal em pares, o nibble e o byte. Uma cor CSS tem seis dígitos hexadecimais, que são 24 bits, oito por canal.
Octal para decimal
No octal, cada casa vale 8 vezes a anterior. O octal 755:
O octal sobrevive nas permissões de arquivo do Linux, porque cada dígito octal vale três bits, um para ler, um para escrever e um para executar. O 7 é 111, todas as permissões; o 5 é 101, ler e executar. O 755 dá tudo ao dono e leitura e execução aos outros.
Conferir se uma permissão está ligada é uma operação lógica bit a bit: 101 AND 100 dá 100, porque cada casa segue a tabela-verdade da conjunção, com 1 no lugar de V e 0 no lugar de F.
Números grandes saem certos
Um número de ponto flutuante guarda inteiros exatos até cerca de dezesseis dígitos decimais. Acima disso ele arredonda sem avisar, e um endereço de memória de 64 bits volta com os últimos dígitos errados. Esta ferramenta usa aritmética exata de inteiro: o binário de 65 uns seguidos volta como 36.893.488.147.419.103.231, que é o número certo.
A parte depois da vírgula
A ferramenta converte inteiros. A parte fracionária tem conta própria, com potências negativas da base, e quase nunca termina: 0,101 em binário é 1 × 2⁻¹ + 1 × 2⁻³ = 0,625, mas um décimo em decimal vira dízima infinita em binário, que é a razão de 0,1 + 0,2 não dar exatamente 0,3 em programação. Cortar a vírgula em silêncio devolveria a conversão de outro número, então a ferramenta recusa e diz por quê.
Fórmula usada
Notação posicional: num sistema de base b, o dígito na posição i vale dᵢ × bⁱ, contando as posições da direita para a esquerda a partir de zero. A leitura acumula valor = valor × b + dígito, o esquema de Horner, que evita calcular potência por potência. A escrita é a divisão sucessiva pela base, lendo os restos de trás para a frente. Os dígitos são os dez algarismos seguidos das vinte e seis letras, o que fixa o teto em 36; o piso é 2, porque a base 1 não é posicional. Os números são tratados como inteiros exatos de qualquer tamanho, e não como ponto flutuante, que só é exato até 2⁵³. A parte fracionária é recusada em vez de cortada, porque cortá-la devolveria a conversão de outro número.
Perguntas frequentes
Como converter binário para decimal?
Multiplique cada dígito pela potência de 2 da posição dele e some. As posições contam da direita, a partir de zero: 1011 é 1 × 8 + 0 × 4 + 1 × 2 + 1 × 1 = 11.
Como converter decimal para binário?
Divida o número por 2 seguidamente e leia os restos de trás para a frente. 11 ÷ 2 dá 5 resto 1; 5 ÷ 2 dá 2 resto 1; 2 ÷ 2 dá 1 resto 0; 1 ÷ 2 dá 0 resto 1. Lendo de trás para a frente: 1011.
Por que o hexadecimal usa letras?
Porque a base 16 precisa de dezesseis dígitos, e só existem dez algarismos. As letras A a F completam os valores de 10 a 15.
Qual o maior dígito de uma base?
Sempre a base menos um. Em binário é 1, em octal é 7, e em hexadecimal é F, que vale 15.