Sistemas Numéricos Posicionais
Em sistemas posicionais, o valor representado por um dígito depende estritamente da sua posição relativa na string numérica. O valor total é a soma ponderada de cada dígito multiplicado por potências sucessivas do valor da base.
$$N = d_n \cdot b^n + d_{n-1} \cdot b^{n-1} + \dots + d_0 \cdot b^0 + d_{-1} \cdot b^{-1} + \dots$$
As Quatro Bases Cruciais do Hardware
- Binário (Base 2): Utiliza o alfabeto $\{0, 1\}$. É a representação natural de tensões elétricas (Alto/Baixo, Ligado/Desligado) nos transistores de efeito de campo.
- Octal (Base 8): Utiliza os algarismos de $\{0 \dots 7\}$. Agrupa blocos exatos de 3 bits ($2^3 = 8$).
- Decimal (Base 10): O sistema humano convencional baseado nos algarismos $\{0 \dots 9\}$.
- Hexadecimal (Base 16): Utiliza os caracteres de $\{0 \dots 9\}$ estendidos pelas letras $\{A, B, C, D, E, F\}$ (onde $A=10_{10}$ e $F=15_{10}$). É o padrão industrial para exibir dump de memórias e endereços mac/IPv6, pois compacta perfeitamente blocos de 4 bits (um Nibble) em um único caractere ($2^4 = 16$).
Mecanismos Algorítmicos de Conversão
1. De Decimal para Qualquer Base (Divisões Sucessivas)
Para extrair a representação em uma base genérica $b$, divide-se sucessivamente o número decimal por $b$. O quociente inteiro é reaproveitado na próxima iteração, e os restos gerados em cada divisão são acumulados na ordem reversa (do último resto obtido até o primeiro).
2. De Binário para Hexadecimal (Mapeamento Direto)
Como 16 é uma potência exata de 2 ($2^4$), a conversão não exige cálculos aritméticos pesados. Basta agrupar a string binária em quartetos de bits a partir da direita (LSD) e substituir cada bloco pelo seu caractere correspondente na tabela hexadecimal.
Exemplo: 1101 0011_2 → 1101_2 = D_{16} e 0011_2 = 3_{16} → Resultado: D3_{16}.