Binário & decimal
Como o computador representa qualquer número usando apenas dois símbolos: 0 e 1.
Por que só 0 e 1?
Por dentro, o computador é feito de bilhões de pequenas chavinhas elétricas. Cada uma só consegue estar em dois estados: ligada ou desligada. Chamamos isso de bit (de binary digit) e representamos por 1 (ligado) e 0 (desligado).
"Mas como representar o número 200, ou a letra A, ou uma cor, só com liga/desliga?" A resposta é a mesma que usamos no nosso dia a dia com 10 dígitos — só que o computador faz com 2. A posição de cada dígito vale o dobro da anterior.
Monte um número clicando nos bits
Cada botão é um bit. Clique para ligar (1) ou desligar (0) e veja o número decimal aparecer. Ou arraste o controle para ver os bits se acenderem sozinhos.
Repare: o byte da direita vale 1, o próximo vale 2, depois 4, 8… até 128. Com 8 bits o maior número possível
é 11111111 = 255, e existem 28 = 256 combinações (de 0 a 255).
Como a conversão funciona
Binário → decimal
Multiplique cada bit pelo valor da sua posição (potência de 2) e some:
# 1 0 1 1 0 0 1 0 1×128 + 0×64 + 1×32 + 1×16 + 0×8 + 0×4 + 1×2 + 0×1 = 128 + 32 + 16 + 2 = 178
Decimal → binário
Divida o número por 2 repetidamente e leia os restos de baixo para cima:
178 ÷ 2 = 89 resto 0 89 ÷ 2 = 44 resto 1 44 ÷ 2 = 22 resto 0 22 ÷ 2 = 11 resto 0 11 ÷ 2 = 5 resto 1 5 ÷ 2 = 2 resto 1 2 ÷ 2 = 1 resto 0 1 ÷ 2 = 0 resto 1 → lendo de baixo: 10110010
E o hexadecimal?
Binário é difícil de ler para humanos (muitos dígitos). O hexadecimal (base 16) é um atalho:
cada grupo de 4 bits vira exatamente 1 dígito hex (0–9 e A–F). Por isso cores na web são #FF8800 —
é hexadecimal puro.
Construa seu próprio conversor
Mini projeto: uma função decParaBin(n) que devolve a string binária, sem usar n.toString(2).
function decParaBin(n) { if (n === 0) return "0"; let bits = ""; while (n > 0) { bits = (n % 2) + bits; // resto vai na frente n = Math.floor(n / 2); } return bits; }
Projeto principal: recrie o widget acima — 8 botões que ligam/desligam e mostram o decimal em tempo real.
Desafio extra: adicione suporte a números negativos usando complemento de dois.
Teste sua intuição
1010 em decimal?
11111111?
Onde você encontra isso
Cores na web
#FF0000 é vermelho: 3 bytes (R, G, B) escritos em hexadecimal.
Endereços IP
192.168.0.1 são 4 bytes — cada parte vai de 0 a 255.
Permissões Unix
chmod 755 usa bits para ler/escrever/executar.
Flags e máscaras
Configurações empacotadas bit a bit num único número.