Cisco CCNAv7 - Sistema binário e conversões
Introdução
Section titled “Introdução”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.
Por que o binário?
Section titled “Por que o binário?”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 circuito | Dígito |
|---|---|
| Desligado | 0 |
| Ligado | 1 |
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.
Unidades de informação
Section titled “Unidades de informação”| Unidade | Tamanho | Exemplo |
|---|---|---|
| Bit | 1 dígito binário | 1 |
| Nibble | 4 bits | 1100 |
| Byte (ou octeto) | 8 bits | 11000000 |
Sistemas numéricos posicionais
Section titled “Sistemas numéricos posicionais”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 decimal (base 10)
Section titled “O sistema decimal (base 10)”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ção | 4ª | 3ª | 2ª | 1ª |
|---|---|---|---|---|
| Valor da posição | 10³ = 1.000 | 10² = 100 | 10¹ = 10 | 10⁰ = 1 |
| Dígito no número 2.345 | 2 | 3 | 4 | 5 |
| Contribuição | 2 × 1.000 = 2.000 | 3 × 100 = 300 | 4 × 10 = 40 | 5 × 1 = 5 |
Somando: 2.000 + 300 + 40 + 5 = 2.345.
O sistema binário (base 2)
Section titled “O sistema binário (base 2)”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ção | 8ª | 7ª | 6ª | 5ª | 4ª | 3ª | 2ª | 1ª |
|---|---|---|---|---|---|---|---|---|
| Potência | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
| Valor | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Quantos valores cabem em 8 bits?
Section titled “Quantos valores cabem em 8 bits?”Com n bits, é possível representar 2ⁿ valores diferentes:
| Bits | Valores possíveis | Menor | Maior |
|---|---|---|---|
| 1 | 2 | 0 | 1 |
| 4 | 16 | 0 | 15 |
| 8 | 256 | 0 | 255 |
| 16 | 65.536 | 0 | 65.535 |
| 32 | 4.294.967.296 | 0 | 4.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.
Convertendo de binário para decimal
Section titled “Convertendo de binário para decimal”O método é simples: some os valores das posições que têm o bit 1.
Passo a passo
Section titled “Passo a passo”- Escreva o número binário de 8 bits.
- Escreva embaixo a sequência 128, 64, 32, 16, 8, 4, 2, 1.
- Some apenas os valores em que o bit é 1.
Exemplo 1: 11000000
Section titled “Exemplo 1: 11000000”| Valor da posição | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Bit | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
128 + 64 = 192
Exemplo 2: 10101000
Section titled “Exemplo 2: 10101000”| Valor da posição | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Bit | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
128 + 32 + 8 = 168
Exemplo 3: 01100100
Section titled “Exemplo 3: 01100100”| Valor da posição | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Bit | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
64 + 32 + 4 = 100
Convertendo de decimal para binário
Section titled “Convertendo de decimal para binário”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ção | Número atual | O número ≥ posição? | Bit | Resto |
|---|---|---|---|---|
| 128 | 172 | Sim | 1 | 172 − 128 = 44 |
| 64 | 44 | Não | 0 | 44 |
| 32 | 44 | Sim | 1 | 44 − 32 = 12 |
| 16 | 12 | Não | 0 | 12 |
| 8 | 12 | Sim | 1 | 12 − 8 = 4 |
| 4 | 4 | Sim | 1 | 4 − 4 = 0 |
| 2 | 0 | Não | 0 | 0 |
| 1 | 0 | Não | 0 | 0 |
Resultado: 10101100
Conferindo: 128 + 32 + 8 + 4 = 172 ✔.
Método 2: divisões sucessivas por 2
Section titled “Método 2: divisões sucessivas por 2”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ão | Quociente | Resto |
|---|---|---|
| 13 ÷ 2 | 6 | 1 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| 1 ÷ 2 | 0 | 1 |
Lendo os restos de baixo para cima: 1101. Completando com zeros à esquerda para formar 8 bits: 00001101.
Valores que vale a pena conhecer
Section titled “Valores que vale a pena conhecer”| Decimal | Binário |
|---|---|
| 0 | 00000000 |
| 1 | 00000001 |
| 2 | 00000010 |
| 4 | 00000100 |
| 8 | 00001000 |
| 10 | 00001010 |
| 64 | 01000000 |
| 128 | 10000000 |
| 192 | 11000000 |
| 255 | 11111111 |
Mini laboratório: converta e confira
Section titled “Mini laboratório: converta e confira”Objetivo: praticar as conversões e conferir os resultados com ferramentas.
Parte 1: converta à mão
Section titled “Parte 1: converta à mão”Converta sem usar calculadora:
| Binário | Decimal |
|---|---|
00001010 | ? |
11111111 | ? |
10000001 | ? |
00110011 | ? |
| Decimal | Biná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.
Parte 2: confira com o computador
Section titled “Parte 2: confira com o computador”No Linux (com a calculadora bc):
echo "obase=2; 172" | bcecho "ibase=2; 10101100" | bcNo 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.
Resumo
Section titled “Resumo”- 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.
