Skip to content

Cisco CCNAv7 - Sistema binário e conversões

Você usa números a vida toda, mas os computadores “pensam” de outro jeito. Para eles, tudo (textos, imagens, endereços de rede) é uma sequência de zeros e uns. Entender o sistema binário é o primeiro passo para compreender endereços IP, máscaras de sub-rede e muito do que vem pela frente no CCNA. Neste post, você vai aprender a converter números entre binário e decimal.

Os computadores são construídos com circuitos eletrônicos que têm dois estados: ligado ou desligado, com tensão ou sem tensão. Dois estados combinam naturalmente com dois dígitos:

Estado do circuitoDígito
Desligado0
Ligado1

Esse dígito se chama bit (binary digit), a menor unidade de informação. Nas redes, os bits viajam como sinais elétricos, pulsos de luz ou ondas de rádio, como você viu no módulo da camada física.

UnidadeTamanhoExemplo
Bit1 dígito binário1
Nibble4 bits1100
Byte (ou octeto)8 bits11000000

Tanto o sistema decimal quanto o binário são posicionais: o valor de cada dígito depende da posição em que ele está.

O sistema que usamos todo dia tem 10 dígitos (0 a 9) e a base é 10. Cada posição vale uma potência de 10, da direita para a esquerda:

Posição4ª3ª2ª1ª
Valor da posição10³ = 1.00010² = 10010¹ = 1010⁰ = 1
Dígito no número 2.3452345
Contribuição2 × 1.000 = 2.0003 × 100 = 3004 × 10 = 405 × 1 = 5

Somando: 2.000 + 300 + 40 + 5 = 2.345.

O binário tem apenas 2 dígitos (0 e 1) e a base é 2. Cada posição vale uma potência de 2:

Posição8ª7ª6ª5ª4ª3ª2ª1ª
Potência2⁷2⁶2⁵2⁴2³2²2¹2⁰
Valor1286432168421

Com n bits, é possível representar 2ⁿ valores diferentes:

BitsValores possíveisMenorMaior
1201
416015
82560255
1665.536065.535
324.294.967.29604.294.967.295

Por isso, um octeto vai de 0 a 255: o maior valor é 11111111, que é 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255.

O método é simples: some os valores das posições que têm o bit 1.

  1. Escreva o número binário de 8 bits.
  2. Escreva embaixo a sequência 128, 64, 32, 16, 8, 4, 2, 1.
  3. Some apenas os valores em que o bit é 1.
Valor da posição1286432168421
Bit11000000

128 + 64 = 192

Valor da posição1286432168421
Bit10101000

128 + 32 + 8 = 168

Valor da posição1286432168421
Bit01100100

64 + 32 + 4 = 100

Há dois métodos. Use o que achar mais fácil.

Método 1: subtração com a tabela (o mais usado em redes)

Section titled “Método 1: subtração com a tabela (o mais usado em redes)”

Para cada posição, da esquerda para a direita:

  • Se o número é maior ou igual ao valor da posição, escreva 1 e subtraia esse valor.
  • Se não é, escreva 0.

Exemplo: converter 172 para binário

PosiçãoNúmero atualO número ≥ posição?BitResto
128172Sim1172 − 128 = 44
6444Não044
3244Sim144 − 32 = 12
1612Não012
812Sim112 − 8 = 4
44Sim14 − 4 = 0
20Não00
10Não00

Resultado: 10101100

Conferindo: 128 + 32 + 8 + 4 = 172 ✔.

Divida o número por 2 repetidamente e anote os restos. O resultado é lido de baixo para cima.

Exemplo: converter 13 para binário

DivisãoQuocienteResto
13 ÷ 261
6 ÷ 230
3 ÷ 211
1 ÷ 201

Lendo os restos de baixo para cima: 1101. Completando com zeros à esquerda para formar 8 bits: 00001101.

DecimalBinário
000000000
100000001
200000010
400000100
800001000
1000001010
6401000000
12810000000
19211000000
25511111111

Objetivo: praticar as conversões e conferir os resultados com ferramentas.

Converta sem usar calculadora:

BinárioDecimal
00001010?
11111111?
10000001?
00110011?
DecimalBinário (8 bits)
25?
100?
200?
255?
Ver respostas

00001010 = 10; 11111111 = 255; 10000001 = 128 + 1 = 129; 00110011 = 32 + 16 + 2 + 1 = 51.

25 = 00011001 (16 + 8 + 1); 100 = 01100100 (64 + 32 + 4); 200 = 11001000 (128 + 64 + 8); 255 = 11111111.

No Linux (com a calculadora bc):

echo "obase=2; 172" | bc
echo "ibase=2; 10101100" | bc

No Linux, Windows ou macOS (com Python):

python3 -c "print(format(172, '08b'))"
python3 -c "print(int('10101100', 2))"

No Windows: abra a Calculadora, mude para o modo Programador e digite o número em Dec ou Bin. O valor nas outras bases é mostrado automaticamente.

Perguntas para fixar:

  • Por que um octeto vai de 0 a 255, e não de 1 a 256?
  • Qual é o valor binário de 128? E de 127?
  • Quantos valores diferentes é possível representar com 10 bits?
Ver respostas
  • O menor valor é 00000000 (zero), então os 256 valores vão de 0 a 255.
  • 128 = 10000000; 127 = 01111111.
  • 2¹⁰ = 1.024 valores.
  • O binário usa só 0 e 1, porque os circuitos têm dois estados.
  • Bit é um dígito binário, nibble são 4 bits e byte ou octeto, 8 bits.
  • Cada posição vale uma potência de 2: 128, 64, 32, 16, 8, 4, 2, 1.
  • Binário → decimal: some os valores das posições com bit 1.
  • Decimal → binário: subtraia os valores da tabela ou divida por 2 e leia os restos de baixo para cima.
  • Um octeto representa valores de 0 a 255.