Números binários explicados: conversão para e de decimal
O sistema binário (base 2) utiliza apenas dois dígitos — 0 e 1 —, mas está na base de todos os computadores. Compreendê-lo ajuda a esclarecer muito do funcionamento da informática.
Como funcionam os valores posicionais no sistema binário
No sistema decimal, cada posição corresponde a uma potência de 10. No sistema binário, cada posição corresponde a uma potência de 2: 1, 2, 4, 8, 16, 32… Assim, 1011 = 8 + 0 + 2 + 1 = 11 no sistema decimal. Lendo da direita para a esquerda, basta somar os valores posicionais onde houver um 1.
De decimal para binário
Divida repetidamente o número por 2 e anote os restos, depois leia-os de baixo para cima. 11 ÷ 2 = 5 r1, 5 ÷ 2 = 2 r1, 2 ÷ 2 = 1 r0, 1 ÷ 2 = 0 r1 → 1011.
Converta instantaneamente
Os nossos conversores gratuitos de decimal para binário e de binário para decimal fazem ambas as conversões. Para perceber como tudo isto se encaixa, leia o nosso guia sobre sistemas numéricos.
Conclusão
Os valores posicionais binários são potências de 2 — some-os sempre que houver um 1 para obter o valor decimal, ou divida por 2 e recolha os restos para fazer o inverso. Assim que compreender o conceito de valor posicional, o sistema binário deixa de ser um mistério.
Ler números binários
Cada posição é uma potência de dois, contando a partir do zero à direita: 1, 2, 4, 8, 16, 32, 64, 128. Para ler um número binário, some os valores das posições que contêm um 1.
1011 é 8 + 0 + 2 + 1 = 11.11111111 é 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, o maior valor num byte.
Memorizar as potências de dois até 256 torna isto imediato, e esses mesmos números surgem constantemente noutros contextos — canais de cor, intervalos de portas, bits de permissão, tamanhos de buffer.
Conversão de decimal para binário
Por divisão: divide-se por 2 repetidamente, guardam-se os restos e lêem-se de baixo para cima. Para 13: 13 ÷ 2 = 6 r1, 6 ÷ 2 = 3 r0, 3 ÷ 2 = 1 r1, 1 ÷ 2 = 0 r1. Lendo de baixo para cima, obtém-se 1101.Por subtração, o que é mais rápido mentalmente: escolha a maior potência de dois que caiba e vá descendo. Para 13: 8 cabe (restante 5), 4 cabe (restante 1), 2 não cabe, 1 cabe. Isso dá 8+4+0+1 = 1101.Por que razão os computadores o utilizam e por que razão se infiltra na vida quotidiana
Os transístores têm dois estados estáveis, pelo que dois símbolos constituem o alfabeto natural. Tudo o que vai além disso — texto, imagens, áudio — é uma convenção sobreposta aos padrões de bits.
A consequência com que te deparas mais frequentemente é que 0,1 + 0,2 não é igual a 0,3 na maioria das linguagens de programação. Um décimo não pode ser representado com exatidão em binário, tal como um terço não pode ser escrito com exatidão em decimal. O resultado é 0,30000000000000004, e não se trata de um erro na linguagem.
A regra prática que daí decorre: nunca utilize ponto flutuante para valores monetários. Armazene os montantes como unidades menores inteiras — cêntimos, pence — ou utilize um tipo decimal, e converta apenas para efeitos de visualização.
Perguntas frequentes
Como converto rapidamente de binário para decimal?
Some as potências de dois para cada posição que contenha um 1, contando a partir do zero à direita. 1011 é 8 + 2 + 1 = 11. Conhecer as potências até 256 torna o cálculo imediato.
Por que razão o 255 é significativo na informática?
É o maior valor que oito bits podem conter, e oito bits equivalem a um byte. É por isso que os canais de cor, os octetos IP mais antigos e muitos limites de tamanho terminam todos em 255.
Porque é que 0,1 + 0,2 não é igual a 0,3?
Porque um décimo não tem uma representação binária exata, tal como um terço não tem uma representação decimal exata. Os valores armazenados são pequenas aproximações e o erro manifesta-se na soma. Utilize números inteiros ou um tipo decimal para valores monetários.