Cisco CCNAv7 - Sistema hexadecimal
Introdução
Section titled “Introdução”Escrever endereços longos em binário é cansativo e cheio de chances de erro. Imagine ler 11000000101010000000101000000001 em voz alta. Para resolver isso, a informática usa o sistema hexadecimal, que representa muitos bits com poucos caracteres. Neste post, você vai aprender como ele funciona e como converter valores, e vai ver onde ele aparece nos endereços MAC e IPv6.
O que é o sistema hexadecimal?
Section titled “O que é o sistema hexadecimal?”O hexadecimal (ou hex) é um sistema numérico de base 16. Ele usa 16 símbolos:
- os dígitos 0 a 9 (valores de 0 a 9), e
- as letras A a F (valores de 10 a 15).
| Decimal | Hexadecimal | Binário (4 bits) |
|---|---|---|
| 0 | 0 | 0000 |
| 1 | 1 | 0001 |
| 2 | 2 | 0010 |
| 3 | 3 | 0011 |
| 4 | 4 | 0100 |
| 5 | 5 | 0101 |
| 6 | 6 | 0110 |
| 7 | 7 | 0111 |
| 8 | 8 | 1000 |
| 9 | 9 | 1001 |
| 10 | A | 1010 |
| 11 | B | 1011 |
| 12 | C | 1100 |
| 13 | D | 1101 |
| 14 | E | 1110 |
| 15 | F | 1111 |
A relação mágica entre hexa e binário
Section titled “A relação mágica entre hexa e binário”Cada dígito hexadecimal corresponde a exatamente 4 bits (um nibble). Dois dígitos hexa representam 1 byte (8 bits).
flowchart LR A["Binário: 1100 0000"] --> B["Hexadecimal: C 0"]
É por isso que o hexa é tão prático: a conversão com o binário é direta, sem contas.
Como indicar que um número é hexadecimal?
Section titled “Como indicar que um número é hexadecimal?”Como 10 pode ser decimal, binário ou hexa, usam-se marcadores:
| Marcador | Exemplo | Onde aparece |
|---|---|---|
| Prefixo 0x | 0xC0 | Programação, documentação técnica |
| Sufixo h | C0h | Documentação, assembly |
| Prefixo # | #C0A800 | Cores em HTML e CSS |
| Sem marcador | C0 | MAC e IPv6 (o contexto já informa) |
Convertendo entre hexadecimal e binário
Section titled “Convertendo entre hexadecimal e binário”Binário → hexadecimal
Section titled “Binário → hexadecimal”- Separe o número em grupos de 4 bits, da direita para a esquerda.
- Converta cada grupo para um dígito hexa usando a tabela.
Exemplo: 11000000
| Grupo | 1100 | 0000 |
|---|---|---|
| Hexa | C | 0 |
Resultado: C0
Exemplo: 10101000 → 1010 = A, 1000 = 8 → A8
Hexadecimal → binário
Section titled “Hexadecimal → binário”Converta cada dígito para 4 bits.
Exemplo: 3F
| Dígito | 3 | F |
|---|---|---|
| Binário | 0011 | 1111 |
Resultado: 00111111
Convertendo entre hexadecimal e decimal
Section titled “Convertendo entre hexadecimal e decimal”Hexadecimal → decimal
Section titled “Hexadecimal → decimal”Cada posição vale uma potência de 16. Para dois dígitos: dígito da esquerda × 16 + dígito da direita.
| Posição | 16¹ | 16⁰ |
|---|---|---|
| Valor | 16 | 1 |
Exemplo: C0
C vale 12, então: 12 × 16 + 0 × 1 = 192 + 0 = 192.
Exemplo: A8
A vale 10, então: 10 × 16 + 8 × 1 = 160 + 8 = 168.
Exemplo: FF
F vale 15, então: 15 × 16 + 15 × 1 = 240 + 15 = 255.
Decimal → hexadecimal
Section titled “Decimal → hexadecimal”Divida o número por 16 e anote o quociente e o resto. O quociente é o dígito da esquerda, e o resto é o da direita.
Exemplo: converter 100 para hexa
| Divisão | Quociente | Resto |
|---|---|---|
| 100 ÷ 16 | 6 | 4 |
Quociente 6 e resto 4 resultam em 64 em hexa. Conferindo: 6 × 16 + 4 = 100 ✔.
Exemplo: converter 255 para hexa
| Divisão | Quociente | Resto |
|---|---|---|
| 255 ÷ 16 | 15 (F) | 15 (F) |
Resultado: FF.
Tabela de apoio
Section titled “Tabela de apoio”| Decimal | Binário | Hexa |
|---|---|---|
| 10 | 00001010 | 0A |
| 31 | 00011111 | 1F |
| 60 | 00111100 | 3C |
| 100 | 01100100 | 64 |
| 128 | 10000000 | 80 |
| 172 | 10101100 | AC |
| 192 | 11000000 | C0 |
| 255 | 11111111 | FF |
Onde o hexadecimal aparece em redes?
Section titled “Onde o hexadecimal aparece em redes?”Endereços MAC
Section titled “Endereços MAC”O endereço MAC tem 48 bits (6 bytes). Escrito em binário seria enorme. Em hexa, são 12 dígitos, em 6 pares:
| Formato | Exemplo |
|---|---|
| Com dois pontos | 00:1A:2B:3C:4D:5E |
| Com hífens | 00-1A-2B-3C-4D-5E |
| Com pontos (estilo Cisco) | 001A.2B3C.4D5E |
Cada par é 1 byte. Os três primeiros bytes costumam identificar o fabricante (OUI), e os três últimos, a placa específica.
Endereços IPv6
Section titled “Endereços IPv6”Um endereço IPv6 tem 128 bits, escritos em 8 grupos de 4 dígitos hexa, separados por dois pontos:
| Formato | Exemplo |
|---|---|
| Completo | 2001:0db8:acad:0001:0000:0000:0000:0010 |
| Abreviado | 2001:db8:acad:1::10 |
128 bits ÷ 4 = 32 dígitos hexa. Escrever os 128 bits em binário exigiria 128 caracteres. Em hexa, só 32.
Você verá as regras de abreviação do IPv6 no módulo de endereçamento IPv6.
Outros usos
Section titled “Outros usos”| Uso | Exemplo |
|---|---|
| Cores na web | #FF5733 (vermelho, verde e azul, 1 byte cada) |
| Captura de pacotes | O Wireshark mostra o conteúdo dos pacotes em hexa |
| Valores de registradores e configurações | Ex.: o registrador de configuração do roteador Cisco, 0x2102 |
| Endereços de memória | Depuração de programas |
Mini laboratório: o hexa no seu computador
Section titled “Mini laboratório: o hexa no seu computador”Objetivo: praticar conversões e encontrar valores hexa em redes reais.
Parte 1: converta à mão
Section titled “Parte 1: converta à mão”| Hexa | Decimal | Binário |
|---|---|---|
0F | ? | ? |
7E | ? | ? |
B4 | ? | ? |
FF | ? | ? |
| Decimal | Hexa |
|---|---|
| 20 | ? |
| 77 | ? |
| 200 | ? |
| 254 | ? |
Ver respostas
| Hexa | Decimal | Binário |
|---|---|---|
0F | 15 | 00001111 |
7E | 7 × 16 + 14 = 126 | 01111110 |
B4 | 11 × 16 + 4 = 180 | 10110100 |
FF | 255 | 11111111 |
20 = 14; 77 = 4D; 200 = C8; 254 = FE.
Parte 2: confira com o computador
Section titled “Parte 2: confira com o computador”No Linux, Windows ou macOS (Python):
python3 -c "print(hex(200))"python3 -c "print(int('C8', 16))"python3 -c "print(format(0xC8, '08b'))"No Linux (bash):
printf '%x\n' 200printf '%d\n' 0xC8Parte 3: encontre e analise o seu MAC
Section titled “Parte 3: encontre e analise o seu MAC”- Descubra o endereço MAC do seu computador:
ip link show(no Windows, ipconfig /all)
- Anote os 6 pares hexa do MAC.
- Converta cada par para decimal e para binário.
- Observe o primeiro byte: o último bit (o bit menos significativo) vale 0 ou 1? Endereços de dispositivos individuais têm esse bit em 0, e os de grupo (multicast e broadcast) têm em 1.
- Procure o seu endereço IPv6 e conte quantos grupos hexa ele tem:
ip -6 address showPerguntas para fixar:
- Por que um byte sempre é escrito com dois dígitos hexa?
- Quantos bits cada dígito hexa representa?
- Qual é o valor decimal do maior byte,
FF?
Ver respostas
- Porque um dígito hexa vale 4 bits, então 2 dígitos = 8 bits = 1 byte.
- 4 bits.
- 255.
Resumo
Section titled “Resumo”- O hexadecimal é de base 16, com os símbolos 0 a 9 e A a F.
- Cada dígito hexa = 4 bits, e 2 dígitos = 1 byte.
- Binário → hexa: agrupe em 4 bits e converta cada grupo.
- Hexa → decimal: multiplique o primeiro dígito por 16 e some o segundo.
- Decimal → hexa: divida por 16 (quociente e resto) ou passe pelo binário.
- O hexa é usado nos endereços MAC (48 bits, 12 dígitos) e IPv6 (128 bits, 32 dígitos), e em cores web e captura de pacotes.
