Por que binário, octal e hexadecimal

Uma base é simplesmente quantos dígitos estão disponíveis antes de ser preciso passar para a posição seguinte. A base dez tem dez, a base dois só zero e um, a base dezesseis precisa de dezesseis e pega emprestadas as letras de A a F para os seis últimos. O valor de um número não muda com a base: só muda como ele é escrito.

O binário existe porque um circuito distingue dois estados com segurança, e dez estados não. O hexadecimal existe porque o binário é ilegível para um ser humano: cada dígito hexadecimal corresponde exatamente a quatro bits, então a conversão entre os dois é uma substituição direta grupo a grupo, sem aritmética. O mesmo vale para o octal, em que um dígito são três bits.

O complemento de dois é a forma como os computadores representam os números negativos, e a sua elegância é que a soma funciona sem nenhuma regra especial para os sinais. Um número negativo se obtém invertendo todos os bits do seu módulo e somando um: em oito bits, −5 vira 11111011. Daí segue que o intervalo não é simétrico, porque o zero ocupa uma vaga na metade positiva: com n bits vai-se de −2ⁿ⁻¹ a 2ⁿ⁻¹−1.

Erros frequentes

  • Tratar o bit de sinal como um sinal de menos: no complemento de dois o bit mais significativo vale −2ⁿ⁻¹, não “menos”. É por isso que 10000000 em oito bits é −128 e não −0.
  • Esquecer que o intervalo positivo tem um a menos: oito bits com sinal chegam a 127, não a 128. É a causa da maioria dos estouros nos exercícios.
  • Ler hexadecimal como decimal: 10 em hexadecimal é 16, não dez. Onde o contexto não é claro, vale escrever os prefixos 0x e 0b.

Perguntas frequentes

Como converter binário em decimal?

Multiplique cada dígito pela potência de dois correspondente à sua posição, contando a partir de zero pela direita, e some os resultados. 10110110 é 128+32+16+4+2 = 182.

Como converter decimal em binário?

Divida repetidamente por dois anotando os restos, depois leia os restos do último para o primeiro. Ou então subtraia potências de dois a partir da maior que couber.

Como se calcula o complemento de dois de um número negativo?

Escreva o módulo em binário na largura escolhida, inverta todos os bits e some um. Para −5 em oito bits: 00000101 vira 11111010, e somando um obtém-se 11111011.

Por que o hexadecimal é tão usado em computação?

Porque um dígito hexadecimal são exatamente quatro bits, então um byte se escreve com só dois caracteres. Converter para binário não exige nenhuma aritmética, ao contrário da conversão para decimal.

Como funciona este cálculo

Valor de um número na base b com dígitos cₙ…c₁c₀: V = Σ cᵢ · bⁱ, com i começando em zero à direita. De decimal para a base b: divisões sucessivas por b, lendo os restos ao contrário. Correspondência direta: um dígito hexadecimal são 4 bits e um octal 3 bits, então o binário se converte em qualquer um deles agrupando os bits. Complemento de dois em n bits: para v não negativo o padrão é o próprio v; para v negativo é 2ⁿ + v, obtido invertendo os bits de |v| e somando 1. Intervalo com sinal: de −2ⁿ⁻¹ a 2ⁿ⁻¹ − 1.