Por que Hexadecimal?
Parte da seção Fundamentos do Journey de Assembly da Coddy. Lição 10 de 45.
Agora você já sabe que os computadores usam o sistema binário. Então, por que os programadores de assembly raramente escrevem em binário diretamente?
O problema com o binário:
Os 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).
O hexadecimal (ou "hex") usa 16 símbolos:
| Digit | Value |
|---|---|
| 0-9 | 0 to 9 |
| A | 10 |
| B | 11 |
| C | 12 |
| D | 13 |
| E | 14 |
| F | 15 |
Por que hex é perfeito para computadores:
Um dígito hex representa exatamente 4 bits (metade de um byte).
| Bits | dígitos hex 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 maneiras:
| Decimal | Binário | Hexadecimal |
|---|---|---|
| 255 | 11111111 | FF |
| 1000 | 1111101000 | 3E8 |
| 65535 | 1111111111111111 | FFFF |
Observe como hex é muito mais curto do que binário.
Onde você verá hex 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 cores (como
0xFF0000para vermelho)
Hex é escrito com um prefixo:
| Prefixo | Exemplo | Significado |
|---|---|---|
0x | 0xFF | FF em hex (255 em decimal) |
$ | $FF | A mesma coisa (usado em alguns assemblers) |
h | FFh | A mesma coisa (estilo mais 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 & HexPratique por conta própria: Playground de Assembly