Você está na página 1de 11

Nova bibliografia: Ttulo: Organizao e projeto de computadores a interface Hardware/Software. Autor: David A. Patterson & John L. Hennessy.

Traduo: Nery Machado Filho. Editora: Morgan Kaufmmann Editora Brasil: LTC (0.21.21.2221.9621)

Edio: 2a

1 Converso de Bases 1.1 NOTAO POSICIONAL - BASE DECIMAL


Desde os primrdios da civilizao o homem vem adotando formas e mtodos especficos para representar nmeros, tornando possvel, com eles, contar objetos e efetuar operaes aritmticas (de soma, subtrao etc.). A forma mais empregada de representao numrica a chamada notao posiciona!. Nela, os algarismos componentes de um nmero assumem valores diferentes, dependendo de sua posio relativa no nmero. O valor total do nmero a soma dos valores relativos de cada algarismo. Desse modo, a posio do algarismo ou dgito que determina seu valor. A formao de nmeros e as operaes com eles efetuadas dependem, nos sistemas posicionais, da quantidade de algarismos diferentes disponveis no referido sistema. H muito tempo a cultura ocidental adotou um sistema de numerao que possui dez diferentes algarismos 0, 1, 2 , 3, 4, 5, 6, 7, 8, 9 e, por essa razo, foi chamado de sistema decimal. A quantidade de algarismos disponveis em um dado sistema de numerao chamada de base; a base serve para contarmos grandezas maiores, indicando a noo de grupamento. O sistema de dez algarismos, acima mencionado, tem base 10; um outro sistema que possua apenas dois algarismos diferentes (0 e 1) de base 2, e assim por diante. Vamos exemplificar o conceito de sistema posicional. Seja o nmero 1303, representado na base 10, escrito da seguinte forma: l30310 Em base decimal, por ser a mais usual, costuma-se dispensar o indicador da base, escrevendo-se apenas o nmero: 1303 Neste exemplo, o nmero composto de quatro algarismos: 1, 3, 0 e 3 e cada algarismo possui um valor correspondente sua posio no nmero. Assim, o primeiro 3 (algarismo mais direita) representa 3 unidades. Neste caso, o valor absoluto do algarismo (que 3) igual ao seu valor relativo (que tambm 3), por se tratar da 1a posio (posio mais direita, que a ordem das unidades). Considerando-se o aspecto trs vezes a potncia 0 da base 10 ou
3 X 100 = 3

enquanto o segundo 3 vale trs vezes a potncia 2 da base 10 ou


3 X 102 = 300

O valor total do nmero seria ento: 1000 + 300 + 0 + 3 = 130310 1 X 103 + 3 X 102 + O X 101 + 3 X 100 = 130310 Generalizando, num sistema qualquer de numerao posicional, um nmero N expresso da seguinte forma: (1.1) N = (d n-1 dn-2 dn-3 .... d1 d0 )b onde: d indica cada algarismo do nmero; n-1, n-2, 1, 0 ndice, indicam a posio de cada algarismo; b indica a base de numerao; n indica o nmero de dgitos inteiros. O valor do nmero pode ser obtido do seguinte somatrio: N=dn-1 X bn-1 + dn-2Xbn-2 +.... + d1Xb1 +d0Xb0 (1.2)

Desse modo, na base 10, podemos representar um nmero: N = 3748 onde: n 4 (quatro dgitos inteiros). Utilizando a frmula indicada acima: dn-1 =3 ou d3 =3;d2 =7;d1 =4;d0 =8 ou obtendo seu valor de acordo com a frmula mostrada acima: N=3X103 + 7X102 + 4X101 + 8X100 = 3000 + 700 + 40 + 8 = 374810

Obs:

Nmeros fracionrios so apresentados em detalhe na prxima aula.

1.2 - OUTRAS BASES DE NUMERAO Vejamos, em seguida, como representar nmeros em outra base de numerao. Entre as bases diferentes da 10, consideremos apenas as bases 2 e potncias de 2, visto que todo computador digital representa internamente as informaes em algarismos binrios, ou seja, trabalha em base 2. Como os nmeros representados em base 2 so muito extensos (quanto menor a base de numerao, maior a quantidade de algarismos necessrios para indicar um dado valor) e, portanto, de difcil manipulao visual, costuma-se representar externamente os valores binrios em outras bases de valor mais elevado. Isso permite maior compactao de algarismos e melhor visualizao dos valores. Em geral, usam-se as bases octal ou hexadecimal, em vez da base decimal, por ser mais simples e rpido converter valores binrios (base 2) para valores em bases mltiplas de 2. Utilizando-se a notao posicional indicada na expresso (1.1), representam-se nmeros em qualquer base:

(1011)2 (342)5 (257)8

nabase2 na base 5 na base 8

No entanto, nas bases diferentes de 10, o valor relativo do algarismo (valor dependente de sua posio no nmero) normalmente calculado usando-se valores resultantes de operaes aritmticas em sua base.
Exemplo 1.1

Seja o nmero na base 2: (1011)2 (usou-se a descrio da expresso 1.1) Se aplicssemos a expresso (1.2), teramos:
1X23 + 0X22 + 1X21 + 1X20 =

=8

+ 0 + 2

+ 1 = (11)10

Este valor 11 est expresso na base 10 e ser, portanto, (ll) e no na base 2. Exemplo 1.2 (1043)5 =1X53 + 0X52 + 4X5l +3X50 = = 125 + 0 + 20 + 3 = (148)10

Sobre o assunto, podemos concluir: a) O nmero mximo de algarismos diferentes de uma base igual ao valor da base. Exemplo: na base 10 temos dez dgitos: de 0 a 9; na base 2 temos apenas dois dgitos: 0 e 1; na base 5 temos cinco dgitos: de O a 4.

b)O valor do algarismo mais esquerda (mais significativo) de um nmero de n algarismos inteiros obtido pela multiplicao de seu valor absoluto (algarismo dn-1) pela base elevada potncia (n-1), ou seja: (dn-1 X bn-1). c) O valor total do nmero obtido somando-se n valores, cada um expressando o valor relativo de um dos n algarismos componentes do nmero. Exemplo 1.3 a) 375 10 n=3 (3 algarismos) 3 X102 + 7X101 + 5X100 = (3produtos) 300 + 70 + 5 (3 valores a somar) (5 algarismos) b)111012 1X24 + 1X23 + 1X22 + 0X21 + 1X20 (5 produtos 5 valores) 1o. prod. 2o. prod. 3o. prod. 4o.prod. 5o.prod. 16 + 8 + 4 + 0 + 1 = 2910

A base do sistema binrio 2 e, conseqentemente, qualquer nmero, quando representado nesse sistema, consiste exclusivamente em dgitos 0 e 1. O termo dgito binrio chamado bit, contrao do termo ingls binary digit. Por exemplo, o nmero binrio 11011 possui cinco dgitos, ou algarismos binrios. Diz-se que o referido nmero constitudo de 5 bits. Em bases de valor superior a 10, usam-se letras do alfabeto para a representao de algarismos maiores que 9. Uma dessas bases especialmente importante em computao; trata-se da base 16 ou hexadecimal, por ser de valor mltiplo de 2 (como a base 8). Nessa base, os algarismos A, B, C, D, E e F representam, respectivamente, os valores (da base 10): 10, 11, 12, 13, 14 e 15. 4

Na base 16 (hexadecimal), dispomos de 16 algarismos (no nmeros) diferentes: 0, 1, 2, 3, ..., 9, A, B, C, D, E e F Um nmero nessa base representado na forma da expresso (1.1): (1A7B)16 O seu valor na base 10 ser obtido usando-se a expresso (1.2): 1X163 + 10X162 + 7X161 +11X160 = 4096 + 2560 + 112 + 11 = 677910 Observemos que na frmula (1.2) foram usados os valores 10 (para o algarismo A) e 11 (para o algarismo B) para multiplicar as potncias de 16. Por isso, obtivemos o valor do nmero na base 10. Em outras palavras, utilizamos valores e regras de aritmtica da base 10 e, por isso, o resultado encontrado um valor decimal. A tabela 1.1 mostra a representao de nmeros nas bases 2, 8, 10 e 16. Tabela 1.1 Base 2 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 Base 8 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 Basel 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Base 16 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11

Pela tabela, podemos observar que os dgitos octais e hexadecimais correspondem a combinaes de 3 (octais) e 4 (hexadecimais) bits (algarismos binrios). Sendo a base desses sistemas de valor maior que a base 2 e tendo em vista essa particularidade na representao de nmeros nas bases 8 e 16 em relao base 2, verifica-se que possvel converter rapidamente nmeros da base 2 para as bases 8 ou 16, ou vice-versa.

Por exemplo, o nmero (101111011101), na base 2, possui 12 algarismos (bits), mas pode ser representado com quatro algarismos octais ou com apenas trs algarismos hexadecimais. (101111011101)2 = (5735)8 porque: 101 = 5; 111= 7; 011 = 3 e 101 = 5 (101111011101)2 = (BDD)16 porque: 1011 = B; 1101 = D; 1101 = D.

1.3 - CONVERSO DE BASES Uma vez entendido como representar nmeros em notao posicional, e como esta notao aplicvel em qualquer base inteira, podemos exercitar a converso de nmeros de uma base para outra. Interessa-nos, principalmente, verificar o processo de converso entre bases mltiplas de 2, e entre estas e a base 10, e vice-versa. 1.3.1 - Converso entre Bases Potncia de 2 1.3.1.1 - Entre as Bases 2 e 8 Como 8 = 23, um nmero binrio (base 2) pode ser facilmente convertido para o seu valor equivalente na base 8 (octal). Se o nmero binrio for inteiro, basta dividi-lo, da direita para a esquerda, em grupos de 3 bits (o ltimo grupo no sendo mltiplo de 3, preenche-se com zeros esquerda). Ento, para cada grupo, acha-se o algarismo octal equivalente, conforme mostrado na tabela 3.1. A converso de nmeros da base 8 para a 2 realizada de forma semelhante, no sentido inverso; substitui-secada algarismo octal pelos seus 3 bits correspondentes (ver tabela 3.1). Exemplo 1.4 1) (111010111)2 = ( ) (111) (010) (111)2 = (727)8 7 2 7 2) (1010011111)2 = ( )8 (001) (010) (011) (111)2 = (1237)8 1237

3) (327)8 = ()2 (011) (010) (111)2 = (11010111)2 3 2 7 4) (673)8 = ( )2 (110) (111) (011)2 = (110111011)2 6 7 3 1.3.1.2 - Entre as Bases 2 e 16 O procedimento de converso entre nmeros binrios e hexadecimais (base 16) idntico ao da converso entre as bases 2 e 8, exceto que, neste caso, a relao 16 = 24. Desse modo, um algarismo hexadecimal representado por 4 bits (ver tabela 3.1); converte-se um nmero binrio em hexadecimal, dividindo-se este nmero em grupos de 4 bits da direita para a esquerda. A converso de hexadecimal para binrio obtida substituindo-se o algarismo hexadecimal pelos 4 bits correspondentes, de acordo com os valores indicados na tabela 3.1. Exemplo 1.5 1) (1011011011)2 =( )16 (0010) (1101) (1011)2 = (2DB)16 2 D B

2) (10011100101101)2 = (0010) (0111) (0010) (1101)2 = (272D)16 2 7 2 D

3) (306)16 = ( ) 2 (0011) (0000) (0110)2 = (1100000110)2 3 0 6

4) (F50)16 = ( )2 (1111) (0101) (0000)2 = (111101010000)2 F 5 0

1.3.1.3 - Entre as Bases 8 e 16 O processo de converso utiliza os mesmos princpios antes apresentados. No entanto, como a base de referncia para as substituies de valores a base 2, esta deve ser empregada como intermediria no processo. Ou seja, convertendo-se da base 8 para a base 16, deve-se primeiro efetuar a converso para a base 2 (como mostrado nos subitens anteriores) e depois para a base 16. E o mesmo ocorre se a converso for da base 16 para a base 8. Exemplo 3.6 1) (3174)8 = ( )16 = (011)(001)(111)(100)2 = (11001111100)2 = (0110)(0111)(1100)2 = (67C)16

2) (254)8 = ( ) 16

= (010)(101)(100)2 = (010101100)2 = (1010)(1100)2 = (AC)16

3) (2E7A)16 = ( )8 = (0010)(1110)(0111)(1010)2 = (0010111001111010)2 = = (010)(111)(001)(111)(010)2 = (27172)8 4)(3C7)16 = ( )8 = (0011)(1100)(0111)2 = (1111000111)2 = = (001)(111)(000)(111)2 = (1707)8 1.3.2 - Converso de Nmeros de uma Base B para a Base 10 A converso de um nmero, representado em uma base B qualquer, para seu correspondente valor na base l0 realizada empregando-se a frmula (1.2). A melhor maneira de compreender o processo de converso consiste na realizao de alguns exemplos prticos, onde se indica, detalhadamente, a aplicao da referida frmula. Os exemplos apresentados referem-se apenas a nmeros inteiros.

Exemplo 1.7 1) (101101)2 = ( )10 Substituindo, na expresso (1.2), as letras pelos valores do exemplo, teremos: b=2 (a base origem do nmero a ser convertido) n=6 (6 algarismos); n - 1 = 5 (expoente do W produto mais esquerda) d1 =1 1o produto: dn-1 X bn-1 = 1 X 25

Os demais produtos seguem a seqncia da expresso (1.2), resultando em: 1 X 25 + 0 X 24 + 1 X 23 + 1 X 22 + O X 21 + 1 X 20 = 32 + O + 8 + 4 + O + 1 = (45)10 2) (27)8 = ( )10 Da mesma maneira, substitui-se na expresso (1.2): b=8 n=2 n-1=1 dn-1 =2 Valor total: 2X81+7X80 = 16+7=(23)10 3) (2A5)16 = ( )10 2X162+ 10X 161 +5X160= = 512 + 160 + 5 = (677)10 4) (6734)8 = ( )10 6 X 83 + 7 X 82 + 3 X 81 + 4 X 80 = = 3072 + 448 + 24 + 4 = (3548)10

5) (27)8 ( )10 2X81+ 7X80 =2310 Obs: No desenvolvimento foram suprimidos os produtos onde os algarismos eram 0, visto que o resultado seria zero tambm (0 X 28 etc.). 6) (457)9 = ( )10 4X92 +5X9l + 7X90 = 324 + 45 + 7 = (376)10

7) (243)5 = ( )10 2 X 52 + 4 X 51 + 3 X 50 = 50 + 20 + 3 = (73) 10

1.3.3 - Converso de Nmeros Decimais para uma Base B A converso de nmeros, representados na base 10, para seus valores equivalentes em uma base B qualquer efetuada atravs de um processo inverso ao do subitem anterior (base B para base 10). A converso obtida dividindo-se o nmero decimal pelo valor da base desejada; o resto encontrado o algarismo menos significativo do valor na base B (mais direita). Em seguida, divide-se o quociente encontrado pela base B; o resto o outro algarismo ( esquerda); e assim, sucessivamente, vo-se dividindo os quocientes pelo valor da base at se obter quociente de valor zero. Em cada diviso, o resto encontrado um algarismo significativo do nmero na nova base; o primeiro resto encontrado o valor do algarismo menos significativo e o ltimo resto ser o algarismo mais significativo (mais esquerda). Na realidade, o algoritmo de converso pode ser definido com vrios critrios de parada, tais como: a) Enquanto quociente for diferente de zero: dividir dividendo por divisor extrair resto como algarismo e coloc-lo esquerda do anterior repetir Quando quociente for igual a zero, parar.

10

b) Enquanto dividendo for maior que divisor: dividir dividendo por divisor extrair resto como algarismo e coloc-lo esquerda do anterior repetir Usar o dividendo (que agora menor que o divisor) como ltimo algarismo esquerda (algarismo mais significativo). Exemplo 3.8 1) (3964)10 = ( )8 3964/8 = 495 resto0 = 4 (algarismo menos significativo) 495/8=61 61/8=7 7/8 = O resto =7 resto2 =5 resto3 = 7 (algarismo mais significativo)

O nmero , ento, (7574)8

11