03 - Notação Binária e Decimal
video: https://youtu.be/... no frontmatter da nota.Notação Binária e Decimal
1. O Dualismo do Endereço
Para dominar o IPv4, é preciso entender que cada endereço existe em dois estados simultâneos:
- Decimal (Humano):
192.168.1.1— fácil de memorizar e digitar. - Binário (Máquina):
11000000.10101000.00000001.00000001— como o processador do roteador toma decisões.
A conversão entre esses estados é a base para o cálculo de Máscaras de Rede, Sub-redes, Wildcard Masks e ACLs. Sem dominar essa conversão, é impossível projetar uma rede corporativa ou resolver exercícios de certificação como CCNA e Network+.
2. A Tabela de Pesos (O Segredo da Conversão)
Como cada octeto tem exatamente 8 bits, utilizamos uma tabela de potências de base 2 para converter qualquer valor decimal entre 0 e 255. Os bits são lidos da esquerda para a direita, começando pelo valor mais significativo (MSB — Most Significant Bit).
| Bit | 1º | 2º | 3º | 4º | 5º | 6º | 7º | 8º |
|---|---|---|---|---|---|---|---|---|
| Peso (potência) | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
| Valor decimal | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Soma total: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
Essa tabela deve ser memorizada. Profissionais de redes experientes a utilizam mentalmente em frações de segundo para resolver problemas de subnetting.
3. Prática de Conversão
A. De Binário para Decimal
Basta somar os "pesos" onde o bit for igual a 1. Exemplo: 11000000.
(1 × 128) + (1 × 64) + (0 × 32) + (0 × 16) + (0 × 8) + (0 × 4) + (0 × 2) + (0 × 1)
= 128 + 64
= 192
Outro exemplo: 10101000.
(1 × 128) + (0 × 64) + (1 × 32) + (0 × 16) + (1 × 8) + (0 × 4) + (0 × 2) + (0 × 1)
= 128 + 32 + 8
= 168
B. De Decimal para Binário
Subtraia o maior peso possível do número decimal e marque 1. Se não puder subtrair, marque 0 e tente o próximo peso. Exemplo: converter 168.
| Passo | Peso | Comparação | Bit | Resto |
|---|---|---|---|---|
| 1 | 128 | 168 ≥ 128? | 1 | 40 |
| 2 | 64 | 40 ≥ 64? | 0 | 40 |
| 3 | 32 | 40 ≥ 32? | 1 | 8 |
| 4 | 16 | 8 ≥ 16? | 0 | 8 |
| 5 | 8 | 8 ≥ 8? | 1 | 0 |
| 6 | 4 | 0 ≥ 4? | 0 | 0 |
| 7 | 2 | 0 ≥ 2? | 0 | 0 |
| 8 | 1 | 0 ≥ 1? | 0 | 0 |
Resultado: 10101000
4. Conversão Completa: 192.168.10.20
Vamos converter o endereço IP 192.168.10.20 em binário, octeto a octeto:
| Octeto | Decimal | Cálculo | Binário |
|---|---|---|---|
| 1º | 192 | 128 + 64 | 11000000 |
| 2º | 168 | 128 + 32 + 8 | 10101000 |
| 3º | 10 | 8 + 2 | 00001010 |
| 4º | 20 | 16 + 4 | 00010100 |
Resultado final em binário: 11000000.10101000.00001010.00010100
Note que cada octeto é convertido de forma independente — não há "vai um" entre octetos. Essa independência é o que torna o processamento octeto-a-octeto viável em hardware.
5. Máscara de Rede em Binário e Decimal
A máscara de rede segue o mesmo princípio: 32 bits onde os 1s indicam a parte de rede e os 0s indicam a parte de host. A transição entre 1s e 0s deve ser contínua (sem alternância).
| Prefixo CIDR | Máscara Decimal | Máscara Binária |
|---|---|---|
| /8 | 255.0.0.0 | 11111111.00000000.00000000.00000000 |
| /16 | 255.255.0.0 | 11111111.11111111.00000000.00000000 |
| /24 | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| /25 | 255.255.255.128 | 11111111.11111111.11111111.10000000 |
| /26 | 255.255.255.192 | 11111111.11111111.11111111.11000000 |
| /27 | 255.255.255.224 | 11111111.11111111.11111111.11100000 |
| /28 | 255.255.255.240 | 11111111.11111111.11111111.11110000 |
| /30 | 255.255.255.252 | 11111111.11111111.11111111.11111100 |
| /32 | 255.255.255.255 | 11111111.11111111.11111111.11111111 |
6. Ferramentas de Conversão
Calculadora Científica
A maioria das calculadoras científicas (Windows, macOS, calculadoras físicas Casio) tem modo BIN/DEC/HEX. Basta digitar o valor decimal e alternar para o modo binário.
Python
# Decimal -> binário (8 bits com zero à esquerda)
>>> format(168, '08b')
'10101000'
>>> bin(168)
'0b10101000'
# Binário -> decimal
>>> int('10101000', 2)
168
# Converter um IP inteiro
>>> ip = "192.168.10.20"
>>> ".".join(format(int(o), '08b') for o in ip.split("."))
'11000000.10101000.00001010.00010100'
Linux (linha de comando)
# Usando bc
echo "obase=2; 168" | bc
# Saída: 10101000
# Usando ipcalc
ipcalc 192.168.10.20/24
# Exibe IP, máscara, rede e broadcast em binário e decimal
# Usando python3 direto no shell
python3 -c "print(format(168, '08b'))"
C
#include <stdio.h>
void print_binary(unsigned char octet) {
for (int i = 7; i >= 0; i--) {
printf("%d", (octet >> i) & 1);
}
}
int main() {
unsigned int a, b, c, d;
sscanf("192.168.10.20", "%u.%u.%u.%u", &a, &b, &c, &d);
print_binary(a); printf(".");
print_binary(b); printf(".");
print_binary(c); printf(".");
print_binary(d); printf("\n");
return 0;
}
7. Exercícios de Conversão
Para fixar o conteúdo, resolva os exercícios abaixo sem usar ferramentas:
Exercício 1 — Decimal para binário:
- (a) 10 → ?
- (b) 172 → ?
- (c) 255 → ?
- (d) 224 → ?
Exercício 2 — Binário para decimal:
- (a) 00000000 → ?
- (b) 11111111 → ?
- (c) 10000000 → ?
- (d) 11000000 → ?
Gabarito:
- 1a: 00001010 | 1b: 10101100 | 1c: 11111111 | 1d: 11100000
- 2a: 0 | 2b: 255 | 2c: 128 | 2d: 192
8. Por que isso é importante?
No contexto de cibersegurança e infraestrutura, a notação binária permite:
- Identificar Sub-redes: entender se dois IPs estão na mesma rede física apenas olhando os bits da máscara.
- Wildcard Masks: essenciais para configurar ACLs em roteadores Cisco. A wildcard é o inverso bit a bit da máscara. Ex: máscara
255.255.255.192→ wildcard0.0.0.63. - Análise de Cabeçalho: ferramentas como o Wireshark mostram dados em hexadecimal ou binário; saber converter mentalmente acelera a análise de tráfego malicioso.
- Cálculo Rápido de Sub-redes: profissionais experientes fazem subnetting mentalmente apenas conhecendo os limites de potência de 2.
9. Resumo Técnico
| Atributo | Decimal | Binário |
|---|---|---|
| Base | 10 | 2 |
| Dígitos | 0-9 | 0-1 |
| Faixa por octeto | 0 a 255 | 00000000 a 11111111 |
| Posicionamento | Valor depende da posição | Idem; potências de 2 |
| Fronteira | Octeto convertido independentemente | Idem |
| Uso humano | Sim | Não (exclusivo para máquinas) |
10. Conclusão
A dualidade binário-decimal é o coração do IPv4. Toda decisão de roteamento, subnetting, agregação e ACL depende dessa conversão. A aparente complexidade da matemática binária se dissolve em padrões memorizáveis com prática. Após algumas semanas de exercícios, conversões como 192 → 11000000 ou 224 → 11100000 tornam-se automáticas, permitindo que o engenheiro de redes foque no design da solução em vez da mecânica do cálculo.