Binário para decimal: devolvendo significado aos bits
O que esta conversão faz
Lê uma sequência de 0s e 1s como um número de base 2 e a reescreve em base 10. É o sentido de que você precisa quando o valor na tela já está em formato de máquina — um despejo de registrador, uma máscara, um byte de flags — e a pergunta que você faz é humana, como saber se o valor passou de um limite.
O método da soma ponderada
Cada dígito binário vale uma potência de 2 conforme a posição a partir da direita, começando em 1, 2, 4, 8 e seguindo. Some os pesos das posições que têm 1. Em 10011100 essas posições são 128, 16, 8 e 4, então o valor decimal é 156. Depois de decorar os primeiros pesos, a conta vira uma soma curta de cabeça.
Tabela de conversão de binário para decimal
Padrões de bits comuns com seus valores decimais. As linhas de todos os uns são as que valem memorizar: cada uma é uma unidade menor que a potência de 2 seguinte, e é por isso que 255 e 65535 aparecem em toda parte na computação.
| Binário | Decimal |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 10 | 2 |
| 11 | 3 |
| 1010 | 10 |
| 1111 | 15 |
| 10000 | 16 |
| 101010 | 42 |
| 11111111 | 255 |
| 100000000 | 256 |
Lendo um byte de flags ou de status
Um byte de status não é bem um número: são oito respostas de sim ou não empacotadas em um único valor. Convertê-lo em decimal dá um identificador compacto para comparar e registrar em log; os bits individuais dizem o que aconteceu. As duas leituras são úteis, e a conversão é a ponte entre uma documentação que descreve bits e um arquivo de log que grava decimais.
Cuidado com os zeros à esquerda
Zeros à esquerda não mudam o valor — 0011 e 11 valem ambos três —, mas mudam a largura, e é a largura que diz se o campo tem um byte ou quatro. Quando o valor vem de um campo de largura fixa, mantenha o preenchimento nas suas anotações mesmo que o conversor o ignore.
Perguntas frequentes
Como ler binário de cabeça?
Escreva os valores de posição 128, 64, 32, 16, 8, 4, 2, 1 sobre os dígitos, da esquerda para a direita em um número de oito bits, e some os valores que estiverem sobre um 1. Para 10011100 isso dá 128 + 16 + 8 + 4 = 156. Praticar com oito bits cobre a grande maioria dos casos do dia a dia.
Por que 11111111 vale 255 e não 256?
Porque oito bits representam 256 valores diferentes contando desde o zero, então o maior deles é 255. Em geral, n bits chegam a 2 elevado a n menos 1. Esse erro de um é a razão de um byte comportar 256 valores, mas o valor 256 não caber em um único byte.
Posso colar binário com espaços entre os bytes?
Pode. Espaços, tabulações e sublinhados são ignorados, então uma sequência copiada de um terminal ou de um despejo de memória converte sem precisar de limpeza. Agrupar bits de quatro em quatro ou de oito em oito é apenas ajuda de leitura e não carrega significado próprio.
Um 1 na frente significa que o número é negativo?
Só se você tiver decidido de antemão que o campo é complemento de dois com sinal, e isso é propriedade do formato, não dos bits. Tomado isoladamente, 11111111 é simplesmente 255. A ferramenta trata toda entrada como magnitude não negativa, a menos que você digite um sinal de menos explícito.
Qual é a maior sequência binária que posso converter?
Grande o bastante para qualquer valor que você vá colar: a ferramenta trabalha com inteiros exatos em vez de ponto flutuante, então não degrada com o tamanho como uma calculadora. Entradas longas demais são recusadas com uma mensagem clara, em vez de serem truncadas em silêncio.