Introdução à Informática Sistemas Numéricos Ageu Pacheco e Alexandre Meslin
Objetivo da Aula: Conhecer e saber aplicar os métodos de conversão entre bases, com especial ênfase na conversão de números entre as bases 10, 2, e 16.
Problema: : Dado um número N s expresso em uma base s (origem) achar sua representação N r na base r (destino). Dois métodos: - desenvolvimento da notação posicional (polinomial) - divisões sucessivas Embora ambos os métodos possam ser utilizados para conversão direta entre quaisquer bases s e r,, é desejável que uma delas seja a 10. Senão vejamos:
Desenvolvimento da notação posicional: Dado N s = A n A n-1 A 1 A 0, N r é obtido avaliando a expressão N r = A n s n + A n-1 s n-1 + + A 1 s + A 0 no sistema de base r. - Se s < r a expressão é avaliada diretamente. - Se s > r é necessário primeiramente converter a base s e os dígitos A i para a base r.
Exemplos: 1) s = 2, N s = 1110101, r = 10, N r =? N r = 1 x 2 6 + 1 x 2 5 + 1 x 2 4 + 1 x 2 2 + 1 = 117 10
Exemplos: 1) s = 2, N s = 1110101, r = 10, N r =? N r = 1 x 2 6 + 1 x 2 5 + 1 x 2 4 + 1 x 2 2 + 1 = 117 10 2) s = 10, N s = 117, r = 2, N r =? (caso de s > r) N r = 1 x (10 2 ) 2 + 1 x (10 2 ) 1 + (7 2 ) N r = 1010 2 + 1010 + 111 = 1100100 + 10001 N r = 1110101 2
Cálculos envolvidos no Exemplo 2: 1010 1100100 x 1010 1010 0000 + 111 1010 1110101 0000 + 1010 1100100
Exemplos (cont.): 3) s = 9, N s = 857, r = 10, N r =? N r = 8 x 9 2 + 5 x 9 + 7 = 700 10
Exemplos: 3) s = 9, N s = 857, r = 10, N r =? N r = 8 x 9 2 + 5 x 9 + 7 = 700 10 4) s = 16, N s = BF7, r = 10, N r =? (caso de s > r) N r = (B 10 ) x 16 2 + (F 10 ) x 16 + 7 N r = 11 x 256 + 15 x 16 + 7 = 3063 10
Exemplos: 3) s = 9, N s = 857, r = 10, N r =? N r = 8 x 9 2 + 5 x 9 + 7 = 700 10 4) s = 16, N s = BF7, r = 10, N r =? N r = (B 10 ) x 16 2 + (F 10 ) x 16 + 7 N r = 11 x 256 + 15 x 16 + 7 = 3063 10 5) s = 7, N s = 100, r = 2, N r =? No caso, nem a base origem nem a destino é a 10. A solução é transformar primeiramente 100 7 para a base10 e depois desta para a base 2 pelo método das divisões sucessivas a seguir.
Método das divisões sucessivas: N s = A n A n-1 A 1 A 0 (n o na base origem) N r = B m B m-1 B 1 B 0 (n o na base destino) Consiste em dividir sucessivamente o número dado N s da base origem s pela base destino r. - Se s > r os restos B obtidos já são os dígitos procurados, ou seja,, N r = B m B m-1 B 1 B 0.. - Se s < r os restos B devem ser primeiramente convertidos para a base r.
Divisões sucessivas: N s r B 0 N 1 r B 1 N 2 N m-1 r B m-1 N m r (B m = N m ) B m 0
Exemplos: 6) s = 10, N s = 70, r = 4, N r =? 70 4 2 17 4 1 4 4 0 1 4 70 10 = 1012 4 1 0
Exemplos (cont): 7) s = 10, N s = 70, r = 6, N r =? 70 6 4 11 6 5 1 6 1 0 70 10 = 154 6 70 10
Algoritmo da divisão sucessiva: N s r B 0 N 1 r B 1 N 2 N m-1 r B m-1 N m r (B m = N m ) B m 0
Demonstração: N s = N 1. r + B 0 N 1 = N 2. r + B 1 N m = 0. r + B m N s = (N 2. r + B 1 ) r + B 0 = N 2. r 2 + B 1. r + B 0 N s = (N 3. r + B 2 ) r 2 + B 1. r + B 0... N s = B m. r m + B m-1. r m-1 +... + B 1. r + B 0 = N r
Exemplos (cont.): 8) s = 10, N s = 69, r = 2, N r =? 69 2 1 34 2 0 17 2 1 8 2 69 10 = 1000101 2 0 4 2 0 2 2 0 1 2 1 0
Exemplos (cont.): 9) s = 2, N s = 1000101, r = 10, N r =? (caso( s < r) A base destino r não tem representaçao direta na base s origem.. É preciso antes achar representação da base destino na de origem para depois realizar a conversão. r = 10 10 = 1010 2
Exemplos (cont.): 9) 1000101 1010-1010 110 1010 1110 0-1010 1001 Nr = (110) 2 (1001) 2 = 69 10 110
Apenas relembrando a sequência inicial da base 2: Base 2: 0,1,10,11,100,101,110,111,1000,1001,1010,1011,... 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,...
Exemplos (cont.): 9a) s = 2, N s = 1000101, r = 10, N r =? A solucão do exemplo 4, em que s < r, é muito mais facilmente obtida através da decomposição posicional do número fornecido. N r = 1 x 2 6 + 1 x 2 2 + 1 = 64 + 4 + 1 = 69 10
Considerando s (base origem) ) e r (base destino) temos na prática que: - Quando s < r e r = 10 aplicar o método do desenvolvimento da notação posicional do número N s - Quando s > r e s = 10 aplicar o método das divisões sucessivas. - Quando s = 10 e r = 10 converter N s para a base 10 (desenvolvimento( posicional) ) e depois converter para a base r (divisões sucessivas).
Exemplos (cont): 10) s = 7, N s = 100, r = 2, N r =? (Ex5 não resolvido) N s = 1 x 7 2 = 49 10 49 2 1 24 2 0 12 2 100 7 = 110001 2 0 6 2 0 3 2 1 1 2 1 0
Exemplos (cont): 11) s = 9, N s = 87, r = 4, N r =? N s = 8 x 9 + 7 = 79 10 79 4 3 19 4 3 4 4 87 9 = 1033 4 0 1 4 1 0
Exemplos (cont): 12) s = 3, N s = 2120, r = 9, N r =? N s = 2 x 3 3 + 3 2 + 2 x 3 = 54 + 9 + 6 = 69 10 69 9 6 7 9 2120 3 = 76 9 7 0
Exemplos (cont): 11) s = 9, N s = 76, r = 3, N r =? N s = 7 x 9 + 6 = 63 + 6 = 69 10 69 3 0 23 3 2 7 3 76 9 = 2120 3 1 2 3 2 0
Os dois exemplos anteriores podem ser resolvidos de forma mais rápida se atentarmos para o fato de que a base 9 é potência da base 3. Senão, vejamos a sequência inicial da base 3: 0,1,2,10,11,12, 20,21,22,100,101,102,110 (base 3) 0,1,2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13.(base 9)
Repare que cada dois dígitos em sequência de um dado número na base 3 corresponde diretamente a um dígito da base 9. Assim teríamos: 21 20 3 = (2 x 3 )+ 1 (2 X 3) = 7 6 9 É esta relação de potências entre as bases que tornará, com o passar do tempo, a conversão entre as bases 2, 4, 8, e principalmente entre a 2 e a 16 (e vice-versa), versa), muito mais simples.
Exemplos (cont.): 12) s = 2, N s = 2, N s = 1011011, r = 4, N = 1011011, r = 4, N r =? =? 01 01 10 11 = 1 1 2 3 = 1123 1 01 10 11 = 1 1 2 3 = 1123 4
Exemplos (cont.): 12) s = 2, N s = 1011011, r = 4, N r =? 01 01 10 11 = 1 1 2 3 = 1123 4 13) s = 4, N s = 1123, r = 2, N r =? 1 1 2 3 = 01 01 10 11 = 1011011 2
Exemplos (cont.): 14) s = 2, N s = 1011011 2, r = 8, N r =? 001 1 011 011 = 1 3 3 = 133 8 15) s = 2, N s = 1011011, r = 16, N r =? 0101 1011 = 5 B = 5B 16
Mudança de base de números reais: N R = (A( n A n-1 A 2 A 1 A. 0 A -1 A -2 A -3...) N R = N I + N F, onde: N I = A.b n n + A n-1.bn-1 + + A 1.b1 + A 0.b0 N F = A -1.b- 1 + A -2.b-2 + A -3.b-3 +...
A parte fracionária N F de um número em uma dada base corresponde sempre `a parte fracionária de sua representação em outra base. N F = A -1.b- 1 + A -2.b-2 + A -3.b-3 +... O problema se reduz ao cálculo dos dígitos A -1, A -2, A -3,...
Multiplicando a expressão de N F por b temos: b.n F = (A -1.b- 1 + A -2.b-2 + A -3.b-3 +...).b b.n F = A + A -1-2.b-1 + A -3.b-3 +
Repare que na expressão anterior A -1 é a parte inteira de b.n F. Subtraindo-se A -1 de b.n F e multiplicando novamente por b a expressão resultante temos: b.(b.n F - A -1 ) = A -2 + A -3.b-1 +... O processo deve continuar até alcançar o número de dígitos desejado na parte fracionária.. A aplicação do método na prática é bem mais simples que as equações anteriores parecem sugerir.
Exemplos: 1) Converter 69.71 10 para a base 2. N I = 1000101 de um exemplo anterior. Para N F : 2 x (0.71) = 1.42 A-1 1 = 1 2 x (0.42) = 0.84 A-2 2 = 0 2 x (0.84) = 1.68 A-3 3 = 1 2 x (0.68) = 1.36 A-4 4 = 1 2 x (0.36) = 0.72 A-5 5 = 0 2 x (0.72) = 1.44 A-6 6 = 1
Exemplos (cont.): 1) Continuando N F = 101101 e o resultado fica: 69.71 10 = (1000101.101101 ) 2
Exemplos (cont.): 1) Continuando N F = 101101 e o resultado fica: 69.71 10 = (1000101.101101 ) 2 2) Converter (1000101.101101) 2 para a base 10. Aqui como s < r, a solução é desenvolver a notação posicional do número: 1000101.101101 = 2 6 + 2 2 + 1 + 2-1 + 2-3 + 2-4 + 2-6 = = 64 + 4 + 1 + 0.5 + 0.125 + 0.0625 + 0.015625 = = 69.703125 10
Exemplos (cont.): 3) s = 2, N s = 1001011.0110011, r = 4, N r =? 011 00 10 11. 01 10 01 101 = 1 0 2 3. 1 2 1 2 1001011.0110011 2 = 1023.1212 4
Exemplos (cont.): 3) s = 2, N s = 1001011.0110011, r = 4, N r =? 01 00 10 11. 01 10 01 10 = 1 0 2 3. 1 2 1 2 1001011.0110011 2 = 1023.1212 4 4) s = 2, N s = 10101110.10011111, r = 8, N r =? 010 101 110. 100 111 110 = 2 5 6. 4 7 6 10101110.100111110 2 = 256.476 8
Exemplos (cont.): 5) s = 2, N s = 101011.1100111, r = 16, N r =? 0010 1011. 1100 1110 = 2 B. C E 101011.1100111 2 = 2B.CE 16
Exemplos (cont.): 5) s = 2, N s = 101011.1100111, r = 16, N r =? 0010 1011. 1100 1110 = 2 B. C E 101011.1100111 2 = 2B.CE 16 6) s = 16, N s = AB.CD, r = 8, N r =? N s = A B. C D = (1010( 1011. 1100 1101) 2 N s = (010( 101 011. 110 011 010) 2 N s = (2( 5 3. 6 3 2) 8 AB.CD 16 = 253.632 8