Mudanca de base - ICEB-UFOP

Propaganda
Departamento de Computação – ICEB - UFOP
Mudança de base
Uma base numérica é um conjunto de símbolos (ou algarismos) com o qual pode se
representar uma certa quantidade ou número.
No dia a dia costuma-se utilizar a base dez, ou base decimal, que como o próprio nome já diz
é composta por 10 algarismos diferentes: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.
Cabe aqui, fazer a distinção entre número, numeral e algarismo.
NÚMERO = exprime a idéia de quantidade.
NUMERAL = símbolo utilizado para representar o número.
ALGARISMO = numerais de 0 a 9, no sistema de numeração decimal – base 10, letras
I,V,X,L,C,D e M no sistema de algarismos romanos, etc
Exemplo: O número trinta é representado no sistema de numeração decimal
pelo numeral 30, no qual foram utilizados os algarismos 3 e 0.
a) Mudança da base 10 para a base 2
a.1) Número inteiro
Para obter o equivalente binário de um número inteiro da base 10 utiliza-se o procedimento a
seguir.
(i) Divide-se o número por 2;
(ii) Divide-se por 2 o quociente da divisão anterior;
(iii) Observe-se que se trata de divisão inteira, ou seja, com resto. O processo é repetido até
que seja obtido quociente igual a zero.
O número binário é formado pela concatenação dos restos das divisões, tomados do último
para o primeiro.
Para justificar este algoritmo, consideremos, inicialmente, a base 10.
Seja o numeral 248.
Dividindo 248 sucessivamente por 10, vem, usando a igualdade
Dividendo = Quociente x Divisor + Resto
248 = 24 x 10 + 8
24 = 2 x 10 + 4
2 = 0 x 10 + 2
Observe os algarismos de baixo para cima: 248
Prof. José Álvaro Tadeu Ferreira
Página 1
Departamento de Computação – ICEB - UFOP
Seja o numeral 13. Dividindo sucessivamente por 10, vem, usando a igualdade
Dividendo = Quociente x Divisor + Resto:
13 = 1 x 10 + 3
1
= 0 x 10 + 1
Observe os algarismos de baixo para cima: 13
Procedimento análogo deve ser utilizado para escrever um numeral na base 2, ou seja,
utilizando-se somente os algarismos 0 e 1:
Seja o numeral 13 na base 10. Dividindo sucessivamente por 2, vem, usando a igualdade
Dividendo = Quociente x Divisor + Resto:
13 = 6 x 2 + 1
6=3x2+0
3=1x2+1
1=0x2+1
Observe os algarismos de baixo para cima: 1101 Portanto, 13 na base 10 é representado por
1101 na base 2.
Perceba-se que, se atribuíssemos uma seqüência numérica a um conjunto qualquer (por
exemplo, uma senha progressiva a pessoas esperando em uma fila), o elemento que recebesse
o número (1101)2, caso a numeração fosse em base dois, seria o mesmo elemento que
receberia o número 13 caso a numeração fosse em base decimal. As duas quantias têm um
“valor seqüencial” semelhante, embora escritas em bases numéricas distintas.
a.2) Número fracionário
Para obter o equivalente binário de um número fracionário da base 10 o procedimento é o
seguinte.
(i) Multiplica-se o número por 2;
(ii) A parte inteira do resultado obtido é o primeiro dígito do número na base 2 e, a parte
fracionária é, novamente, multiplicada por 2;
(iii) O processo é repetido até que se obtenha a parte fracionária nula.
Seja representar o numeral 0,375, da base 10, na base 2.
0,375
x2
0,750
0,750
x2
1,500
0,500
x2
1,000
Prof. José Álvaro Tadeu Ferreira
Página 2
Departamento de Computação – ICEB - UFOP
Portanto, 0,375 na base 10, é representado por 0,011 na base 2.
Tem-se,então, de acordo com o apresentado nos itens a.1 e a.2, que o numeral 13,375, da base
10, é representado, na base 2, da forma:
1101,011
Quando o número possui parte inteira e parte fracionária a mudança de base é feita em duas
etapas utilizando os procedimentos vistos nos itens a.1 e a.2.
Seja, agora, a representação do numeral 0,1, da base 10, na base 2.
0,1
x2
0,2
0,2
x2
0,4
0,4
x2
0,8
0,8
x2
1,6
0,6
x2
1,2
0,2
x 2 ....
0,4
Observe-se que as multiplicações começam a se repetir, impossibilitando que se chegue a um
resultado com a parte fracionária nula. Portanto o 0,1, da base 10 , tem a seguinte
representação na base 2:
(0,1)10 = (0,0001100110011...)2
Ou seja, 0,10 da base 10 não tem representação finita na base 2 podendo ser representado ,
nesta base, somente de forma aproximada.
Em um computador com tamanho de palavra de 16 bits, (0,1)10 é armazenado como
(0,0001100110011001)2
Que, quando convertido para a base 10 (vide item b deste texto), resulta em
(0,0999908447265625)10
Produzindo, portanto, um erro da ordem de 9 x 10-6.
b) Mudança da base 2 para a base 10
Um número de numeral (N)2 na base 2, ou seja, utilizando apenas os algarismos ou dígitos 0
e 1, pode ser convertido para a base 10, da seguinte forma:
(N)2 = (an-1.2n-1 + an-2.2n-2 + ... + a1.21 + a0.20 + a-1.2-1 + a-2.2-2 +...+ a-m.2-m)10
Onde n é o número de algarismos da parte inteira e m, da parte fracionária.
Portanto, para encontrar a correspondência entre um número da base dois e um número na
base decimal, basta computar o somatório dos pesos de cada um dos algarismos em relação à
base 10.
Prof. José Álvaro Tadeu Ferreira
Página 3
Departamento de Computação – ICEB - UFOP
Por exemplo, para o número (1101)2 :
Peso
Dígito
3
1
2
1
1
0
0
1
= 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 8 + 4 + 0 + 1 = 13*
* o valor 13 obtido está na base decimal porque, por exemplo, o produto de 1 x 23 só resulta
em 8 na base decimal; conversão semelhante pode ser feita para outras bases, desde que as
operações de multiplicação e soma sejam efetuadas adequadamente.
Seja, agora, obter a representação decimal do número (0,011)2.
Peso
Dígito
-1
0
-2
1
-3
1
= 0 x 2-1 + 1 x 2-2 + 1 x 2-3 = 0 + 1/4 + 1/8 = 0,375
Sendo assim, confirmando o já obtido anteriormente,
(1101,011)2 = (13,375)10
Ouro Preto, abril de 2008
Prof. José Álvaro Tadeu Ferreira
Página 4
Download