Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

03 - Notação Binária e Decimal

#include
video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione 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:

  1. Identificar Sub-redes: entender se dois IPs estão na mesma rede física apenas olhando os bits da máscara.
  2. 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 → wildcard 0.0.0.63.
  3. 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.
  4. 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.