Ideias principais
Os computadores guardam números em base 2 e as pessoas os leem em base 8 ou 16. Converter entre bases, contar os bits de que um valor precisa e ler valores com sinal usam valores posicionais que são potências da base.
- Cada dígito é ponderado por uma potência da base. Em binário os pesos são 1, 2, 4, 8, 16 e assim por diante a partir da direita.
- Um dígito hexadecimal representa 4 bits e um dígito octal 3 bits, então agrupar os bits converte diretamente.
- Para dar códigos distintos a n itens são necessários ⌈log₂ n⌉ bits. n bits comportam 2ⁿ valores diferentes.
- No complemento de dois de 8 bits, um 1 à esquerda significa negativo. O valor é o valor sem sinal menos 256.
Equações principais
value = Σ dᵢ × bⁱbits needed = ⌈log₂ n⌉n bits hold 2ⁿ valuestwo’s complement: value = unsigned − 2ⁿ when the top bit is 1
Exemplo resolvido
O binário 101101 é 32 + 8 + 4 + 1 = 45. O hexadecimal 2F é 2 × 16 + 15 = 47. O octal 157 é 64 + 40 + 7 = 111. Dar códigos distintos a 200 itens exige 8 bits, porque 2⁷ = 128 é pouco e 2⁸ = 256 basta. O padrão de 8 bits 11110110 é 246 sem sinal, então em complemento de dois é 246 − 256 = −10. O padrão 10110111 tem seis bits 1.
Erros comuns
- Ler os valores posicionais binários da esquerda em vez de dar peso 1 ao dígito mais à direita.
- Arredondar o número de bits para baixo. 200 itens precisam de 8 bits, não 7.
- Tratar um padrão com 1 à esquerda como positivo em complemento de dois.
Prática
Teste-se com perguntas de prática sobre este tema: Sistemas numéricos e dados