Mudança de base
Como converter números do sistema decimal para outros sistemas e, ao contrário, como converter números de outros sistemas para o decimal.
O que é um sistema de numeração
Normalmente trabalhamos com o sistema decimal. Esse sistema tem dez algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. O sistema decimal se caracteriza pelo seguinte: quando multiplicamos um número, por exemplo 57, por dez, avançamos uma ordem — precisamos de um algarismo a mais para escrever esse número: 570.
Podemos ter também outros sistemas de numeração. Um sistema octal teria apenas os algarismos 0, …, 7. A expressão 7 + 1 seria igual a 10, porque no sistema octal não temos o algarismo 8. O sistema hexadecimal teria os algarismos 0, 1, … 14, 15. Às vezes, no lugar dos algarismos maiores que 9, usamos letras, de modo que o sistema hexadecimal teria os algarismos 0, …9, A, B, C, D, E, F.
Surpreendentemente, encontramos outros sistemas de numeração até no dia a dia. Por exemplo, o tempo — os segundos e os minutos são contados no sistema sexagesimal. Cada instante do dia pode ser escrito como um número de três algarismos no sistema sexagesimal. O primeiro algarismo indica as horas, o segundo os minutos e o terceiro os segundos. Se escolhemos os dois-pontos como separador, temos, por exemplo, o número 14:05:59. Observe que, se somarmos um segundo a esse horário, não obtemos 14:05:60, e sim 14:06:00 — porque 60 não é um algarismo válido do sistema sexagesimal.
Conversão do sistema decimal para o binário
Suponha que tenhamos o número 70 no papel. Agora queremos convertê-lo para o sistema binário. O princípio é bem simples: dividimos o número que queremos converter por 2 sucessivamente, até chegar a zero, anotando os restos das divisões inteiras. Se quisermos converter o número para outro sistema, por exemplo o hexadecimal, dividimos por 16. Se for para o sistema de base 6, dividimos por 6. Na prática, fica assim:
O número resultante no sistema binário é dado pelos restos das divisões. Mas não lemos os restos de cima para baixo, e sim de baixo para cima. Assim, o número 70 no sistema binário é 1000110.
Conversão do sistema binário para o decimal
No sentido contrário, fazemos assim. Tomemos o número 1100010 e vamos convertê-lo para o sistema decimal. Esse sentido é mais simples, basta calcular esta soma:
Cada parcela tem a forma x · 2i, em que x é um algarismo do número binário original e i aumenta de 1 em 1, da direita para a esquerda. Como estamos convertendo o número 1100010, a soma fica assim:
O número 1100010 tem sete algarismos, então os expoentes do número 2 serão, sucessivamente, 6, 5, …, 1, 0. Depois de calcular as potências e multiplicar, obtemos a expressão:
Por que esse procedimento funciona?
Podemos mostrar isso no sistema decimal. O que os algarismos de um número realmente significam, por exemplo no número 7384? O algarismo 4 indica a quantidade de unidades, o algarismo 8 a quantidade de dezenas, o algarismo 3 a quantidade de centenas e o algarismo 7 a quantidade de milhares. Assim, podemos escrever que
Podemos ainda ajustar essa expressão para não usarmos os números 100, 10 e 1, mas sempre alguma potência de dez. Como 100 = 1, 101 = 10 e assim por diante, podemos escrever
Todo número no sistema decimal pode ser descrito do mesmo modo, e as parcelas têm a forma x · 10i, em que x é um algarismo de 0 a 9 — são dez algarismos. O valor i é algum número inteiro não negativo, que indica a ordem. Se i = 0, a parcela indica as unidades; se i = 2, indica as centenas (porque 102 = 100).
Vamos agora tentar converter o número 7348 do sistema decimal para… hã…, o sistema decimal. Vai fazer sentido. Vamos dividir o número 7348 por 10:
Se lermos os restos de baixo para cima, temos o número 7348 — de volta o número original, que estávamos tentando converter para … o mesmo sistema.
Se quisermos descrever o sistema binário, fazemos exatamente do mesmo modo — todas as parcelas terão a forma x · 2i, em que x é o algarismo 0 ou 1. O valor i novamente indica as ordens. Assim como as divisões sucessivas por dez nos dão as ordens de um número no sistema decimal, as divisões sucessivas por dois nos dão as ordens no sistema binário.
Observe também que, quando dividimos um número por dez e perguntamos pelo resto, esse resto sempre estará no intervalo [0, 9]. Se dividimos um número por dois, o resto pode ser 0 ou 1.
Conversão para outros sistemas
O procedimento anterior, de conversão do sistema decimal para o binário, é tão geral que pode ser usado também para outros sistemas. Se quisermos converter o número 185 para o sistema hexadecimal, basta dividir por 16:
O número 185 no sistema de base 16 teria a forma (11, 9). No lugar dos “algarismos” acima de 9, costumam-se usar letras, de modo que 10 = A, 11 = B, 12 = C, … Podemos então escrever que o número 185 tem, na base 16, a forma B9.
Da mesma maneira, podemos converter o número B9 da base 16 para o sistema decimal.