Representação de Inteiros com Sinal
Em sistemas binários puros, todos os dígitos são 0 ou 1, o que impede o uso de um caractere físico de traço ("-") para denotar negatividade. Três principais técnicas foram desenvolvidas ao longo da história computacional:
1. Sinal e Magnitude
O bit mais significativo à esquerda (MSB) é isolado exclusivamente para funcionar como o indicador de sinal ($0 = \text{positivo}$, $1 = \text{negativo}$). Os bits restantes codificam o valor absoluto absoluto. Seu grande defeito é a existência de duas representações para o valor zero (ex: $+0 \rightarrow 00000000$ e $-0 \rightarrow 10000000$), o que complica o circuito lógico interno.
2. O Padrão Moderno: Complemento de Dois ($2's\text{ Complement}$)
É a técnica universalmente adotada pelas CPUs contemporâneas para inteiros com sinal. O bit mais significativo possui um peso aritmético negativo de $-2^{n-1}$. Isso unifica as operações de adição e subtração em um único circuito somador digital comum de hardware.
Deseja-se mapear o valor $-6$ utilizando uma arquitetura de 8 bits:
- Obtenha a representação binária do valor absoluto positivo: $+6_{10} = 00000110_2$
- Inverta todos os bits (Operação lógica NOT / Complemento de Um): $11111001_2$
- Some $1_2$ ao resultado obtido: $11111001_2 + 00000001_2 = 11111010_2$
Portanto, no barramento de dados, a palavra binária 11111010 é interpretada nativamente como $-6_{10}$.
Representação de Números Reais (Ponto Flutuante - IEEE 754)
Para codificar números reais de precisão fracionária fracionária ou valores com escalas massivas, as arquiteturas abandonam o modelo de ponto fixo e adotam o padrão internacional IEEE 754, inspirado na notação científica clássica.
O número é estruturado dividindo sua palavra binária em três campos distintos:
- Bit de Sinal (S): 1 bit que define se o número é positivo (0) ou negativo (1).
- Expoente Biased (E): Controla a magnitude e o deslocamento do ponto (baseado em um viés fixo para evitar armazenamento de sinais no próprio expoente).
- Fracionário/Mantissa (M): Armazena os dígitos significativos da precisão real numérica, assumindo de forma implícita um bit de valor 1 à esquerda do ponto (normalização).
A equação matemática que rege essa decodificação de hardware é:
$$V = (-1)^S \cdot (1 + \text{Mantissa}) \cdot 2^{(\text{Expoente} - \text{Vies})}$$
As duas formatações mais comuns do mercado são:
- Precisão Simples (Float - 32 bits): Dividido em 1 bit de sinal, 8 bits de expoente (viés de 127) e 23 bits de mantissa.
- Precisão Dupla (Double - 64 bits): Dividido em 1 bit de sinal, 11 bits de expoente (viés de 1023) e 52 bits de mantissa.