Trilha 01 · Fundamentos

Binário & decimal

Como o computador representa qualquer número usando apenas dois símbolos: 0 e 1.

① Intuição

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.

A ideia central: no sistema decimal, cada casa vale 10× a anterior (1, 10, 100…). No binário, cada casa vale a anterior (1, 2, 4, 8, 16…). Ligar uma casa significa "somar aquele valor".
② Visualização interativa

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.

8 bits = 1 byte · valores de 0 a 255
128
27
64
26
32
25
16
24
8
23
4
22
2
21
1
20
Nenhum bit ligado → o número é 0.
Decimal
0
Binário
00000000
Hexadecimal
0x00

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).

③ Explicação técnica

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.

Limitação importante: com N bits você só representa 2N valores. É por isso que existe o famoso "número máximo" em computação (como o 255, ou o 4.294.967.295 de 32 bits). Estourar esse limite causa overflow — um bug clássico.
④ Projeto para programar

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.

⑤ Exercícios rápidos

Teste sua intuição

Quanto vale 1010 em decimal?
Quantos valores diferentes cabem em 1 byte (8 bits)?
Qual número decimal é 11111111?
⑥ Aplicações no mundo real

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.

← Anterior: Dados e informação Próxima: Eficiência e complexidade →