sábado, 1 de dezembro de 2007

Conversão de bases


Alguns concursos trazem questões de conversão entre bases de numeração. Desenvolvi uma tabela interessante que pode ajudar nessa tarefa:

11100110001 (2) =
011-100-110-001 =
3-4-6-1 = 3461 (8)

11100110001 (2) =
0111-0011-0001 =
7-3-1 = 731 (16)

ABC (16) = 1010-1011-1100 = 101010111100(2)

101-010-111-100 (2) = 5-2-7-4 = 5274 (8)

Outros métodos:

Decimal Inteiro para Binário, Octal, Hexa:
  • Faça a divisão sucessiva por 2, 8, 16 respectivamente, tomando sempre o resto.
Binário, Octal, Hexa para Decimal Inteiro:
  • Faça o produto e somas das respectivas potências.
Decimal (maior que zero e menor que um) para Binário
  • Multiplicação sucessiva por 2, tomando a parte inteira que aparecer
As operações podem ser feitas por conversão, ou seja, converta para decimal, faça a operação e converta o resultado para a base original:
762 (8) - 365 (8) =
7*8^2+6*8^1+2*8^0 - 3
*8^2+6*8^1+5*8^0 =
(448+48+2) - (192 + 48 + 5) =
498 - 245 = 253 (10) = 375 (8)

Temos então
762 (8) - 365 (8) = 375 (8), com a necessidade de três conversões! Não é muito prático!

Vejamos uma outra forma. Considere os valores correspondentes em casa base:
(Base 10) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
(Base 16) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
(Base 8) = {0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17}

A última operação fica:
2 - 5, não dá, tomamos "emprestado", fica 12 - 5 = 5 ,
pois na base 8 de 5 para 12 faltam 5.
5 - 6. não dá, tomamos "emprestado", fica 15 - 6 = 7 ,
pois na base 8 de 5 para 15 faltam 7.
finalmente, 6 - 3 = 3, e o resultado é 375 na base 8.
Muito mais simples!

Vejamos A679 - 49FB:
9 - B, não dá, tomamos "emprestado", fica 19 - B = E ,
(Base 16) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,10, 11, 12, 13, 14, 15, 16, 17, 18, 19}
pois na base 16 de B para 19 faltam E (lembre-se que E = 14 em decimal).
6 - F, não dá, tomamos "emprestado", fica 16 - F = E ,
(Base 16) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,10, 11, 12, 13, 14, 15, 16}
pois na base 16 de F para 16 faltam 7.
5 - 9, não dá, tomamos "emprestado", fica 15 - 9 = E ,
(Base 16) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,10, 11, 12, 13, 14, 15}
pois na base 16 de 9 para 15 faltam C (lembre-se que C = 12 em decimal).
Finalmente, A que agora é 9 - 4 = 5

Então A679 - 49FB = 5C7E.
Que é outra viagem!!

Vamos resolver convertendo para binário (usando a tabela):
A679 = 1010.0110.0111.1001
49FB = 0100.1001.1111.1011 -
_____________________
5C7E = 0101.1100.0111.1110

Sabendo que:
> no "tomar emprestado" '0' vira '10';
> 10 - 1 = 1; 1-1=0; 1-0=1;
> 10 quando empresta vira 1;
Essa é mais tranquila.

Questão de TI:

(Esaf - IRB/2004) O número 0,6875 na base dez equivale a:

a) 0,0111 na base 2.
b) 0,1000 na base 2.
c) 1,1000 na base 2.
d) 1,1010 na base 2.
e) 0,1011 na base 2.

Resolução:

O primeiro é zero pois a parte inteira 0 = 0 em todas as bases.
2*0,6875 = 1,375 - tomamos o segundo algarismo como 1.
2*0,375 = 0,75 - o terceiro algarismo é 0.
2*0,75 = 1,5 - o quarto será 1.
2*0,5 = 1

dessa forma: 0,6875 (10) = 0,1011 (2), letra e.

#!#

veja mais exemplos aqui.

Nenhum comentário: