sexta-feira, 20 de fevereiro de 2009

Sistemas de numeração, bases e conversões - Parte 2

Este post é uma continuação de Sistemas de numeração, bases e conversões - Parte 1.

Conversão entre sistemas numéricos



Como o sistema por nós usado é o decimal, vou mostrar como converter de uma base b para decimal e, depois, de decimal para uma base b. Vamos lá.



Convertendo de uma base b para decimal

Primeiramente, devemos lembrar da nossa definição dada na primeira parte.



Note que os expoentes são justamente as casas decimais.

Sabendo disso, dado um número qualquer na base b, para transformá-lo para decimal, basta escrevê-lo de acordo com a definição. Vamos a alguns exemplos para que fique mais claro.

Binário para decimal

Pegue o número binário 10110. Queremos saber que número na base decimal ele representa. Note que:



Hexadecimal para decimal

Já sabemos que a base é 16, temos que lembrar que o A representa o 10, o B representa o 11 e assim por diante. Então, dado o número 7C1, queremos saber que número na base decimal ele representa.



Convertendo de decimal para uma base b

Aqui será preciso um pouco mais de esforço, principalmente para entender o processo. Basicamente, temos o seguinte algoritmo para converter de decimal para uma base b:

Pegue o número decimal e divida-o por b, anote o resto (este será o último dígito do número na base b). Agora pegue o quociente e divida-o por b, anote o resto (agora, este será o penúltimo dígito). Depois, pegue o quociente da segunda divisão e divida-o por b. E assim por diante, sempre anotando os restos. Você irá parar quando o número que você dividir por b for menor que ele, sendo esse, então, o último resto e, portanto, o primeiro dígito.

Bom, pode ter parecido meio confuso, mas na verdade é bem simples. É mais fácil enxergar com exemplos.

Decimal para Binário

22 / 2 quoc. 11 resto 0
11/2 quoc. 5 resto 1
5/2 quoc. 2 resto 1
2/2 quoc. 1 resto 0
1/2 resto 1

Agora é só ler de de baixo para cima. Então, , como já tínhamos visto.

Decimal para Hexadecimal

1985/16 quoc. 124 resto 1
124/16 quoc. 7 resto 12
7/16 resto 7

Lembrando que 12= C, então é só ler de baixo para cima. Isto é, 7C1.

Explicação do algoritmo



Talvez você esteja se perguntando por que esse algoritmo funciona. Vou tentar aqui dar uma explicação coxa razoável. Peguemos o exemplo do 22 em binário. Para ficar do jeito da nossa definição lá em cima, temos que colocar tudo como coeficientes de potências de 2. Para isso, basta "ir dividindo por dois". Observe que podemos escrevê-lo da seguinte maneira:



Agora, dividimos o 11 por 2. Ficando:



Depois, dividimos o 5 por 2.



Pronto! O que acabamos de fazer foi escrever o 22 só com números menores ou iguais a 2. Juntando os termos de uma maneira conveniente, ficamos com:



Note que os coeficientes são justamente o número na forma binária que queríamos: 10110. É fácil perceber que o resto da primeira divisão será o coeficiente do , o resto da segunda, será o coeficiente do, e assim por diante, por isso nosso pequeno algoritmo funciona.

Para entender a tirinha



Se você não entendeu a tirinha publicada na primeira parte do post, eu explico. Primeiramente, é importante salientar que esta piada só faz sentido em inglês. Isso se deve ao fato de que as abreviações de octal (ou seja, um sistema numérico cuja a base é 8) e Outubro serem iguais em inglês (oct) e também ao fato de as abreviações de decimal e Dezembro serem iguais em inglês (dec).

Não é difícil de concluir que , é só usar um dos métodos ensinados neste mesmo post. Note que:



Portanto, 31 de Outubro é igual a 25 de Dezembro, isto é, o Dia das Bruxas é igual ao Natal, matematicamente falando. ;-P

Até.








2 comentários: