Por que Hexadecimal?
Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 10 de 45.
Você agora sabe que os computadores usam binário. Então, por que os programadores de assembly raramente escrevem em binário diretamente?
O problema com o binário:
Números binários são muito longos. Veja este exemplo:
| Número | Binário |
|---|---|
| 255 | 11111111 |
| 1000 | 1111101000 |
| 65535 | 1111111111111111 |
Escrever longas sequências de 1s e 0s é lento, propenso a erros e difícil de ler.
A solução: hexadecimal (base 16).
Hexadecimal (ou "hex") usa 16 símbolos:
| Dígito | Valor |
|---|---|
| 0-9 | 0 a 9 |
| A | 10 |
| B | 11 |
| C | 12 |
| D | 13 |
| E | 14 |
| F | 15 |
Por que o hexadecimal é perfeito para computadores:
Um dígito hexadecimal representa exatamente 4 bits (metade de um byte).
| Bits | Dígitos hexadecimais necessários |
|---|---|
| 4 bits (nibble) | 1 dígito hex |
| 8 bits (1 byte) | 2 dígitos hex |
| 16 bits (2 bytes) | 4 dígitos hex |
| 32 bits (4 bytes) | 8 dígitos hex |
| 64 bits (8 bytes) | 16 dígitos hex |
O mesmo número, de três formas:
| Decimal | Binário | Hexadecimal |
|---|---|---|
| 255 | 11111111 | FF |
| 1000 | 1111101000 | 3E8 |
| 65535 | 1111111111111111 | FFFF |
Observe como o hexadecimal é muito mais curto que o binário.
Onde você verá hexadecimal em assembly:
- Endereços de memória (como
0x7FFFou0x402000) - Códigos ASCII (como
0x41para 'A',0x0apara nova linha)
- Valores de registradores em depuradores
- Valores de cor (como
0xFF0000para vermelho)
Hexadecimal é escrito com um prefixo:
| Prefixo | Exemplo | Significado |
|---|---|---|
0x | 0xFF | FF em hex (255 em decimal) |
$ | $FF | Mesma coisa (usado em alguns assemblers) |
h | FFh | Mesma coisa (estilo antigo) |
Neste curso, usamos o prefixo 0x: 0x0a, 0x41, 0xFF.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
1A Máquina
O que é CPUMemóriaRegistradores vs MemóriaComo as instruções funcionamPadrão de Dois ArquivosA Arquitetura x86-642Sistemas de Numeração
Por que Binário?Números BináriosDecimal para BinárioPor que Hexadecimal?Hex para DecimalDecimal para HexASCII & Hex