Professional Documents
Culture Documents
Nota importante: Existem materiais includos neste documento de outros autores e fontes bibliogrficas quase todos devidamente identificadas (algumas fontes no foi possvel de serem identificadas, trechos de textos, questes soltas, pinadas aqui e ali, etc. Caso o usurio conhea alguma fonte no identificada no texto, por favor, comunique para que se efetue os devidos crditos). Algumas questes foram retiradas de sites de Internet, sendo de uso livre. Para informaes mais completas, deve-se recorrer aos livros ou Web sites citados na bibliografia fornecida na apostila da disciplina.
I SISTEMAS DE NUMERAO
1.1 Introduo(1)
Um sistema de numerao um conjunto finito de smbolos organizados atravs de uma lei de formao que permite representar qualquer quantidade numrica. No incio dos tempos conhecidos os habitantes das cavernas costumavam pintar animais nas paredes, provavelmente para armazenar informaes que obtinham no seu cotidiano.
Mais tarde, no pastoreio, o pastor usava vrias formas para controlar o seu rebanho. Pela manh, ele soltava os seus carneiros e analisava ao final da tarde, se algum tinha sido roubado, fugido, se perdido do rebanho ou se havia sido acrescentado um novo carneiro ao rebanho. Para fazer isso, ele guardava pedrinhas dentro de um saco. Assim ele tinha a correspondncia um a um, onde cada carneiro correspondia a uma pedrinha que era armazenada em um saco.
Nota: A palavra que usamos hoje, clculo, derivada da palavra latina calculus, que significa pedrinha.
Posteriormente, os Sumrios criaram um sistema para representar sua linguagem atravs de desenhos, gravados em placas de argila. Mais tarde, os egpcios usavam representar sua linguagem atravs dos hierglifos gravados em papiros. Os chineses gravavam mensagens nos cascos de tartarugas, os incas usavam fios com ns (os quipos). Gradativamente o homem foi aperfeioando sua forma de comunicao atravs da escrita. Os conceitos gerais de linguagem tem uma representao muito complexa - por exemplo, como representar um objeto, uma ao ou um sentimento. Presume-se que o homem encontrou mais facilidade para representar quantidades. Inicialmente, as quantidades eram representadas com os dedos. Assim, desde o princpio nosso entendimento de quantidades sempre foi digital (vem de "digitus" = dedos). Os mais antigos registros encontrados representam quantidades atravs de entalhes em ossos. Diversas civilizaes antigas criaram alguma forma de representao de quantidades, mas cada nmero n era sempre representado por n smbolos da unidade. Para facilitar a contagem, as unidades eram agrupadas em grupos de 5 (uma mo-cheia) ou 10 (duas mos-cheias). Os smbolos numricos atualmente utilizados so conhecidos como Arbicos e foram desenvolvidos pelos rabes. Ao grego Pitgoras se atribui a diviso dos nmeros em mpares e pares. Ele concebeu que todas as manifestaes da Natureza se fazem com nmeros ou propores matemticas. Hoje, existem vrios sistemas numricos, dentre os quais, para este estudo, destacam-se o sistema decimal, o sistema binrio, o sistema octal e o sistema hexadecimal.
onde, 10 a base do sistema, e 103 , 102 ,101 e 100 representam os pesos. Outro exemplo: 123,456 = 100 + 20 + 3 + 0,4 + 0,005 + 0,0006 = 1 x 102 + 2 x 101 + 3 x 100 + 4 x 10-1 + 5 x 10-2 + 6 x 10-3 O princpio da atribuio de pesos, observado na notao posicional, pode ser estendido a qualquer sistema numrico.Na base 10, dispe-se de 10 algarismos para a representao do nmero: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Na base 2, seriam apenas 2 algarismos: 0 e 1. Na base 16, seriam 16: os 10 algarismos aos quais estamos acostumados, mais os smbolos A, B, C, D, E e F, representando respectivamente 10, 11, 12, 13, 14 e 15 unidades. Generalizando, temos que uma base b qualquer dispor de b algarismos, variando entre 0 e (b-1). A representao 125,3810 (base 10) significa 1x102 + 2x101 + 5x100 + 3x10-1 + 8x10-2 : Ou seja, , podemos representar uma quantidade N qualquer, numa dada base b, com um nmero tal como segue: Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n , sendo que, an.bn + .... + a2.b2 + a1.b1 + a0.b0 a parte inteira e a-1.b-1 + a-2.b-2 + .... + a-n.b-n a parte fracionria. Intuitivamente, sabemos que o maior nmero que podemos representar, com n algarismos, na base b, ser o nmero composto n vezes pelo maior algarismo disponvel naquela base (ou seja, b-1). Por exemplo, o maior nmero que pode ser representado na base 10 usando 3 algarismos ser 999 (ou seja, 103 - 1 = 999). Podemos ver que o maior nmero inteiro N que pode ser representado, em uma dada base b, com n algarismos (n "casas"), ser N = bn - 1. Assim, o maior nmero de 2 algarismos na base 16 ser FF16 que, na base 10, eqivale a 25510 = 162 - 1.
Pgina 4
Na base 10 0 1 2 3 4 5 6 7 Na base 10 8 9 10 11 12
Na base
3 0 1 2 10 11 12 20 21
Na base
3 22 100 101 102 110
Se, em vez dos smbolos 0, 1 e 2, tivssemos os smbolos {, , } isto, em nada, mudaria as coisas. Pois os numerais seriam:
Na base 10 0 1 2 3 4 5 6 Na base 3 0 1 2 10 11 12 20 Na base 3 com ,
Algumas bases particularmente importantes para ns so as bases 2, 8 e 16 ditas binria, octal e hexadecimal respectivamente.
smbolos 0 e 1. As razes que o levaram a este sistema parece ter sido mstica onde havia grande beleza na analogia entre zero representando o vazio e um representado a divindade. Os computadores modernos utilizam apenas o sistema binrio, isto , todas as informaes armazenadas ou processadas no computador usam apenas DUAS grandezas, representadas pelos algarismos 0 e 1. Essa deciso de projeto deve-se maior facilidade de representao interna no computador, que obtida atravs de dois diferentes nveis de tenso. Havendo apenas dois algarismos, portanto dgitos binrios, o elemento mnimo de informao nos computadores foi apelidado de bit (uma contrao do ingls binary digit).
Representao Binria 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 1 0 1 0 0 1 0 0 0
1 0 0 0 0
1 0 0 0 0 0
1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0
Potncia 20 21 22 23 24 25 26 27 28 29 210
Repr.Decimal
A representao binria perfeitamente adequada para utilizao pelos computadores. No entanto, um nmero representado em binrio apresenta muitos bits, ficando longo e passvel de erros quando manipulado por seres humanos normais como por exemplo os programadores, analistas e engenheiros de sistemas (bem, no to normais assim ...). Para facilitar a visualizao e manipulao por programadores de grandezas processadas em computadores, so usualmente adotadas as representaes octal (base 8) e principalmente hexadecimal (base 16). Ressaltamos mais uma vez que o computador opera apenas na base 2 e as representaes octal e hexadecimal no so usadas no computador, elas se destinam apenas manipulao de grandezas pelos programadores. A seguir apresentam-se nmeros representados no sistema binrio e na notao posicional. 10012 1011011.10012
Base 10 Base 2 Base 8 0 0 0 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000 10 9 1001 11 10 1010 12 11 1011 13 12 1100 14 13 1101 15 14 1110 16 15 1111 17
Base 16 0 1 2 3 4 5 6 7 8 9 A B C D E F
Nota: a base 16 ou sistema hexadecimal pode ser indicada tambm por um "H" ou "h" aps o nmero; por exemplo: FFH significa que o nmero FF (ou 255 em decimal) est em hexadecimal. No confundir o "H" ou "h" com mais um dgito, mesmo porque em hexadecimal s temos algarismos at "F" e portanto no existe um algarismo "H".
Exemplo: Como seria a representao do nmero 1610 em binrio, octal e hexadecimal? Soluo: Seria respectivamente 100002, 208 e 1016. Exemplos: 7268 54,378 145H 5A3 EF4
Por exemplo, qual ser a representao de 1310 na base 2? Executando divises sucessivas at encontrar quociente 0, obtemos: 13 2 = 6 62=3 32=1 12=0 r=1 r=0 r=1 r=1
Assim, tomando os restos das divises em ordem contrria a que eles aparecem conclumos que: 1310 = 11012
Pgina 8
Faz-se ento a converso para o sistema decimal. Como o maior nmero que se pode formar com trs algarismos 7, a converso ir resultar diretamente no nmero no sistema octal. 1102 = 68 0102 = 28
1001 = 9
1000 = 8
O mesmo raciocnio vale para converso da base 10 para uma base r , menor que 10.
Pgina 10
No so apenas os nmeros inteiros que tm representao em outras bases. Os nmeros com parte fracionria tambm podem ser mudados de base. As regras para estas mudanas so muito semelhantes as dos nmeros inteiros. A principal diferena que os nmeros inteiros tm potncias positivas enquanto os fracionrios tm potncias negativas.
1.9.1
Para passar um nmero fracionrio da base 10 para uma base b, basta multiplic-lo sucessivamente pela base de destino, guardando a parte inteira, at alcanar zero. Por exemplo, qual a representao de 0,12510 na base 2? Para determinar isto, multiplicamos sucessivamente 0,125 por 2: 0,125 2 = 0,25 i=0 0,25 2 = 0,5 i=0 0,5 2 = 1 i=1 Assim, conclumos que 0,12510 igual a 0,0012.
Pgina 11
Algumas vezes, no possvel alcanar o fim da parte fracionria porque a representao na base de destino tem uma quantidade muito grande de dgitos decimais. Neste caso, paramos o processo em algum ponto e assumimos um erro de aproximao. Por exemplo, qual o valor de 0,3710 na base 2? Como antes fazemos as multiplicaes sucessivas: 0,37 2 = 0,74 I = 0 0,74 2 = 1,48 I = 1 0,48 2 = 0,96 I = 0 0,96 2 = 1,92 I = 1 0,92 2 = 1,84 I = 1 0,84 2 = 1,68 I = 1 ... Com isto vemos que 0,3710 corresponde aproximadamente a 0,0101112,
1.9.2
Da mesma forma que nos nmeros inteiros, para se passar de uma base b para a base 10, bastar expandir e calcular o polinmio representado pelo nmero em questo. Por exemplo, para encontrar o valor na base 10 do nmero 0,0101112 expande-se o polinmio:
0 2 1 + 1 2 2 + 0 2 3 + 1 2 4 + 1 2 5 + 1 2 6 = 0 1 1 1 1 1 1 + 1 2 + 0 3 + 1 4 + 1 5 + 1 6 = 21 2 2 2 2 2 1 1 1 16 + 4 + 2 + 1 23 1 + + + = = 0 ,3 5 9 3 7 5 4 16 32 64 64 64
que da um resultado aproximado de 0,35937510. Como voc pode notar acima, o numero 0,0101112 a representao aproximada de 0,3710. Agora que sabemos o valor exato da representao de 0,0101112 podemos determinar o erro que cometemos ao parar de fazer as multiplicaes. Este erro de 0,3710 - 0,35937510 = 0,01062510 ou 2,87%. Quanto mais casas decimais colocssemos, menor seria o erro relativo.
12 6 3 1
De onde se conclui que a parte inteira 1210 igual a 11002. Em seguida, transformamos a parte fracionria: 0,0625 2 = 0,125 0,125 2 = 0,25 0,25 2 = 0,5 0,5 2=1 i=0 i=0 i=0 i=1
Com isto, vemos que a parte fracionria fica 0,062510 igual a 0,00012. Portanto, o nmero completo transformado : 12,062510 = 1100,00012
Exemplos:
1. Converter 101.1012 para base 10. 101.1012 = 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3 = 5,62510 2. Converter 8,37510 para a base 2. Neste caso, transformamos primeiramente a parte inteira do nmero: 8 = 1000 Ento, a seguir, utilizamos a seguinte seqncia: 0,375 x 2 = 0, 750 0,750 x 2 = 1,500 o primeiro algarismo aps a vrgula o primeiro dgito do binrio o primeiro algarismo aps a vrgula o segundo dgito do binrio, sendo 1, e a parte do nmero aps a vrgula no for nula, separamos o que fica depois da vrgula e reiniciamos neste caso, a parte depois da vrgula nula, o processo termina, e o binrio fica sendo: 8,37510 = 1000.011
0,500 x 2 = 1,000
1.11.1 Adio
A adio binria realizada como a adio decimal. Se dois nmeros decimais 56719 e 31863, so adicionados, a soma 88582 obtida. Voc pode analisar os detalhes desta operao da seguinte maneira.
Pgina 13
Somando a primeira coluna, nmeros decimais 9 e 3, resulta o dgito 2 com um transporte de 1. O transporte ento somado prxima coluna. Adicionado segunda coluna, (1+1+6), resulta o nmero 8, sem transporte. Este processo continua at que todas a colunas (incluindo os transportes) tenham sido somadas. A soma representa o valor numrico das parcelas.
A adio no sistema binrio realizada como numa adio convencional no sistema decimal. 0+0=0 0+1=1 1+0=1 1 + 1 = 10 1 + 1 + 1 = 11 Por exemplo:
Como no sistema decimal, 1 + 1 = 2, no sistema binrio representamos o 2 por 10, o 3 por 11, e assim por diante. Na soma, portanto, usamos o transporte, como fazemos no sistema decimal quando a soma passa de 9.
1.11.2. Subtrao
O mtodo anlogo ao do sistema decimal. 00=0 10=1 11=0 0 1 = 1 e empresta 1 Exemplo: 1000 111
-1-1-1
1.11.3. Multiplicao
Procede-se como na multiplicao decimal. 0x0=0 0x1=0 1x0=0
Arquitetura e Organizao de Computadores Pgina 14
1.11.4. Diviso
A diviso binria, por sua vez, utiliza processo anlogo ao sistema decimal, como mostra o exemplo:
a) Mtodo Sinal-mdulo
Usualmente, reserva-se um bit (colocado esquerda do nmero, na posio do algarismo mais significativo). Se o nmero for positivo, o bit de sinal ser 0, se for negativo, ser 1. Exemplos:
3510 = 1000112
7310 = 10010012
a) Obteno do complemento de 2
Pgina 16
Caso 1: A > B A: 1011 (decimal 11) 1011 B: 0110 (decimal 6) -> compl.de 2 -> 1010
Caso 2: A < B A: 0110 (decimal 6) 0110 B: 1011 (decimal 11) -> compl. de 2 -> 0101
Pgina 17
2. Cdigo BCD A sigla BCD representa as iniciais de Binary-Coded-Decimal, que significa uma codificao do sistema decimal em binrio. A formao deste cdigo, j conhecida : Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Pgina 18
O nmero de bits (binary digit) de um cdigo o nmero de dgitos binrios que ele possui. Notamos, ento, que o cdigo BCD um cdigo de 4 bits. 2.1 Representao de Dados Um programa (a seqncia de instrues) dever manipular diferentes tipos de dados. Os dados podem ser: Numricos Ponto fixo (nmeros inteiros) Ponto flutuante (nmeros reais ou fracionrios) BCD (representao decimal codificada em binrio) Alfabticos Letras, nmeros e smbolos (codificados em ASCII e EBCDIC) O tipo de dado que est sendo fornecido ao programa dever ser informado pelo programador, atravs de declaraes, fazendo com que o programa interprete o dado fornecido de acordo com a declarao. Por exemplo, na linguagem C, declaraes tipo int num; (inteiro) ou float sal (real); indicam que a varivel num um nmero inteiro (int) e a varivel sal um nmero real (float), representao cientfica, isto , representado na forma [(Sinal) Valor x Base (elevada a Expoente)]. Declaraes tipo char letra; indicam que a varivel um caractere. A forma mais intuitiva de representar nmeros seria atravs da converso do nmero decimal para seu correspondente em binrio. Como os computadores operam sempre em binrio, essa seria a forma mais imediata e eficiente. No entanto, quando queremos representar nmeros muito grandes, essa forma se torna insuficiente. A faixa de nmeros que podem ser representados em ponto fixo insuficiente para a maioria das aplicaes cientficas, onde existe a necessidade de representar-se nmeros muito grandes e/ou nmeros muito pequenos. Para contornar este problema, desenvolveu-se a notao cientfica, onde um quintilho representado por 1,0 x 1018, em vez de escrev-lo por extenso (1 000 000 000 000 000 000). A representao de nmeros em ponto flutuante basicamente a verso binria da notao cientfica. Um nmero em ponto flutuante, representado em binrio, deve fornecer as informaes relativas ao significando (seu sinal e sua magnitude) e ao expoente (tambm seu sinal e sua magnitude). Diversas representaes podem ser utilizadas para isto (sinal/magnitude, complemento de dois, etc). Devido a isto, existem diversos formatos adotados para representar os nmeros em ponto flutuante. Muitos deles so especficos para uma determinada famlia de computadores ou para um determinado fabricante. Assim, um nmero em notao cientfica pode ser representado por um produto de dois fatores: o primeiro fator indica o sinal do mmero mais a sua parte significativa, sua preciso, e a segunda parte indica a grandeza do nmero, representada por uma potncia; justamente o valor do expoente que marca essa grandeza. Portanto, temos: N = + M x B+ E Onde,
Pgina 19
N nmero que se deseja representar + - sinal do nmero M dgitos significativos do nmero (significando) B base de exponenciao + E valor do expoente, com seu sinal Dessa forma possvel manipular preciso (nmero de dgitos significativos do significando) e grandeza (expressa pelo expoente) do nmero.
2.2 Representao normalizada Existem diferentes maneiras de escrever o mesmo nmero. A forma normalizada aquela que apresenta um nico dgito, diferente de zero, antes da vrgula. Exemplo: 110101 = 1,10101x25 ou, escrevendo-se o prprio 5 tambm na base dois, 1,10101x2101. A base 2 est sendo mantido na forma decimal, 2 , e no na binria 10 , porque ela no precisar ser representada, por ser implcita. Chama-se significando ao nmero 1,10101 e expoente ao nmero 101, deste exemplo. Seguem-se outros exemplos:
1110,01 ou 1,11001 x 23 ou 1,11001 x 211 , que corresponde a 14,25, em decimal. 0,0011 ou 1,1 x 2-3 ou 1,1 x 2-11 , que corresponde a 0,1875 em decimal. 0,1001 ou 1,001 x 2-1 , que corresponde a 0,5625 em decimal.
Pode-se observar que, para se representar um nmero real, necessrio armazenar o significando e o expoente, sendo dispensvel representar o "1,", por estar sempre presente, sendo, tambm, desnecessrio, armazenar o dois, base do sistema.
Considerando o formato acima, como seria a representao interna de 407,37510? 1. Converso direta para a base:
M= 10010111011000000000000, pois no h necessidade de representar o 1 antes da vrgula, que na forma normalizada sempre estar presente. 3. Representao interna: 0 0001000 100101110110000000000000
Faixa de Representao
Pgina 21
Como vimos anteriormente, a representao em ponto flutuante tem limites de alcance e de preciso. O alcance limitado pelo nmero de bits do expoente. A preciso determinada pelo nmero de bits do significando. Ocorre overflow quando o valor absoluto do dado a ser representado excede a capacidade de representao, porque o nmero de bits do expoente (neste caso, positivo) insuficiente para representar o dado. Um outro problema ocorre na regio de nmeros prximos de zero, que tem o maior expoente negativo possvel. Ocorre underflow quando o valor absoluto do dado a ser representado to pequeno que fica menor que o menor valor absoluto representvel. Nesse caso, o expoente negativo mas no representa os nmeros muito prximos de zero e ocorre uma descontinuidade na representao, com os nmeros prximos a zero no sendo representados. Underflow no o mesmo que impreciso. Dados na faixa de underflow no podem ser representados, ocorrendo estouro no expoente. No caso de impreciso, a normalizao permite que o dado seja representado, porm com perda de preciso. Observe que temos sete regies distintas, conforme o quadro:
mNN= -0,999 x 1099. MNN= -0,100 x 10-99. mNP= 0,100 x 10-99. MNP= 0,999 x 1099.
2.4 CARACTERSTICA Caracterstica (tambm chamada de REPRESENTAO POLARIZADA) o expoente, representado na forma de excesso de n ( ou Polarizao), ou seja, CARACTERSTICA = EXPOENTE + EXCESSO
Pgina 22
Para se definir a maneira como o computador armazenar o nmero real em ponto flutuante, preciso definir o nmero de bits que ele usar para representar o significando e o nmero de bits para o expoente. Suponha-se que um determinado computador reserve 1 byte, isto , 8 bits, para representar os nmeros reais. Admita-se que usa o primeiro bit para sinal do nmero, trs bits seguintes para o expoente e os ltimos quatro bits para o restante do significando.
bit 0
bit 1
bit 2
bit 3
bit 4
bit 5
bit 6
bit 7
O bit 0 indica o sinal do nmero: 0 positivo, 1 negativo. Os bits 1, 2 e 3 constituem o expoente e precisam representar tanto expoentes positivos quanto expoentes negativos. Com esses trs bits, h 8 possibilidades: 000, 001, 010, 011, 100, 101, 110, 111, que representariam nmeros de 0 at 7. Isso no serviria pois precisamos de expoentes negativos, alm dos positivos. Deram-se aos expoentes 000 e 111 significados especiais, a serem tratados daqui a pouco. Como devemos representar expoentes tanto negativos, para os nmeros menores que zero, quanto positivos, para nmeros maiores que zero, vamos assumir que o nmero 3, isto , 011 represente o expoente zero. Os anteriores representaro os expoentes negativos e os posteriores os expoentes positivos. Dessa maneira, o nmero que representa o expoente ser o nmero em binrio menos trs, conforme tabela a seguir.
001 1 -2
010 2 -1
011 3 0
100 4 1
101 5 2
110 6 3
importante observar que num nmero diferente de zero, normalizado na base 2, o significando sempre comear por 1. Assim sendo, no h necessidade de se representar o (1. ) pois isso ficaria implcito, bastando representar os dgitos que aparecem depois da vrgula. Sendo m o nmero de bits representados do significando, o nmero representado ter, sempre, m+1 dgitos.
Observem-se os exemplos a seguir: 3,5 . 2,75 . 7,5 . -7,25 . -0,375. 11,1 10,11 111,1 -111,01 1,11 x 21 1,0110 x 21 1,1110 x 22 1,1110 x 210 -1,1101 x 22 -1,1101 x 210 1,1100 x 21 01001100 01000110 01011110 11011101 10011000
Pgina 23
Como se pode ver, o maior nmero positivo que pode nele ser representado :
que corresponde a 1,1111 x 23 , isto : 1111,1, ou 15,5. O menor nmero positivo seria: 0 0 0 1 0 0 0 0
que corresponde a 1,0000 x 2-2 , isto : 0,25. Lembremo-nos que os expoentes 000 e 111, no foram considerados, at agora; eles tem tratamento especial. Usa-se o expoente 000 , quando se quer indicar que o nmero no est normalizado, ficando o 000 como o menor expoente, isto , -2 , no nosso exemplo. O significando passa a ser 0, _ _ _ . Onde, depois da vrgula, esto os dgitos do significando, s que, agora, sem a precedncia do (1, ) , como era antes, e sim (0, ). Neste caso, no teremos, mais, m+1 dgitos significativos, como tnhamos quando os nmeros eram normalizados. O expoente 111 reservado para representar mais infinito, com zero na frente (01110000) e menos infinito com 1 na frente (11110000), em ambos os casos o significando sendo 0000. O mesmo expoente 111 ainda utilizado para caracterizar indeterminao, 11111000. As demais combinaes com o expoente 111 no so vlidas, sendo consideradas (not a number).A representao substituindo expoente por caracterstica acarreta que todas as
caractersticas sero positivas, de forma que possvel eliminar a representao do sinal do expoente.
Se CARACTERSTICA = EXPOENTE + EXCESSO, sendo M o nmero de bits para a representao da caracterstica, temos:
Arquitetura e Organizao de Computadores Pgina 24
0 = - 2M-1 + EXCESSO logo: EXCESSO = + 2M-1 Ex: Para 8 bits, temos, EXCESSO = 2M-1 = 2 8-1 = 2 7 = 128
EXEMPLO DE REPRESENTAO EM PONTO FLUTUANTE Representao com base 2 (PDP 11- o primeiro computador/processador de 16 bits da DIGITAL EQUIPAMENT CORPORATION. O PDP-11 inaugurou o conceito de compatibilidade, que poupava tempo e dinheiro ao usurio. Permitia transportar aplicaes de mquinas de menor porte para maior porte, e vice-versa; eliminava a necessidade de reescrever software e reduzia os investimentos em perifricos.) Os microcomputadores podem representar os dados em ponto flutuante com base implcita = 2, no seguinte formato:
sendo SN = sinal do dado CARACTERSTICA = o expoente, representado na forma de excesso de n, ou seja, CARACTERSTICA = EXPOENTE + EXCESSO No caso, o excesso de 12810, portanto: CARACTERSTICA = EXPOENTE + 12810 Exemplificando: expoente = - 28 logo caracterstica = - 2810 + 12810 = 10010 Assim, uma caracterstica entre 0 e 12710 significa que o expoente negativo, enquanto uma caracterstica entre 129 e 255 significa que o expoente positivo (caracterstica igual a 1280 significa expoente igual a 0). Exemplo: Representar 25,510 Como a base implcita 2, vamos converter para binrio: 2510 = 110012 Parte fracionria: 0.5 x 2 = 1,0 Logo: 25,510 = 11001,12 x 20 Normalizando: 11001,12 x 20 = 1,100112 x 24. Como o primeiro dgito do significando ser sempre 1, no caso da base 2, economiza-se um bit no significando no armazenando o primeiro bit do significando, j que est implcito que todos os nmeros tero significando iniciando com 1. Em binrio com 23 bits, o significando normalizada ser (lembrando que o primeiro bit 1 no representado): 100.1100.0000.0000.0000.0000 Obs.: Como o nmero 1,100112 ser representado em 23 bits, os bits no representativos ( direita) sero preenchidos com zeros. Como o expoente 4, a caracterstica ser: 410 + 12810 = 13210. Em binrio com 8 bits, ser: 1000 0100
Arquitetura e Organizao de Computadores Pgina 25
2.5 O Padro IEEE 754 O Instituto de Engenharia Eltrica e Eletrnica ou IEEE uma organizao profissional e no-lucrativa, fundada nos Estados Unidos. a maior (em nmero de scios) organizao profissional do mundo. A IEEE foi formada em 1963 pela fuso do Instituto de Engenheiros de Rdio (IRA) com o Instituto Americano de Engenheiros Eltricos (AIEE). O IEEE tem filiais em muitas partes do mundo, sendo seus scios engenheiros eltricos, cientistas da computao, profissionais de telecomunicaes, etc. Sua meta promover conhecimento no campo da engenharia eltrica e eletrnica. Um de seus papis mais importantes o estabelecimento de padres para formatos de computadores e dispositivos. A norma IEEE 754, publicada em 1985, procurou uniformizar a maneira como as diferentes mquinas representam os nmeros em ponto flutuante, bem como devem oper-los. Essa norma define trs formatos bsicos para os nmeros em ponto flutuante: o formato simples, com 32 bits, o duplo com 64 bits e o qudruplo com 128 bits (ainda existem o simples estendido e o duplo estendido). O primeiro bit para o sinal: 0 representa nmero positivo e 1 representa nmero negativo. No formato simples o expoente tem 8 bits e o significando tem 23 bits; no formato duplo, o expoente tem 11 bits e o significando 52 bits e no formato qudruplo, o expoente tem 15 bits e o significando 111 bits, sendo o primeiro bit 1 normalizado representado neste formato. No formato simples, o menor expoente representado por 00000001, valendo -126, e o maior expoente representado por 11111110, valendo +127. Em ambos os casos, o expoente vale o nmero representado em binrio menos 127. No formato duplo, o menor expoente representado por 00000000001, valendo 1022, e o maior expoente representado por 11111111110, valendo +1023. Em ambos os casos, o expoente vale o nmero representado em binrio menos 1023. Alm dos formatos bsicos, a norma ainda define o formato estendido, com 80 bits e o formato qudruplo, com 128 bits.
Um significando normalizado comea com um ponto binrio, seguido por um bit 1 e depois pelo resto do significando. padro IEEE 754 consiste no primeiro 1 do significando oculto, um ponto oculto e depois os bits da frao. Isto denominado "significando". Todos os nmeros normalizados tem um significando S, no intervalo:
Pgina 26
FORMATOS Largura do formato Significando Expoente Emx Emn Caracterstica Largura Simples 32 23 +127 -126 +127 8 Duplo 64 52 +1023 -1022 +1023 11
Exemplo: Mostrar a representao do valor -0,7510 no formato de ponto flutuante padro IEEE 754 para preciso simples. O valor -0,7510 tambm pode ser representado como 1,12x2-1 Usando a forma geral de representao de nmeros em ponto flutuante usando o padro IEEE 754, em preciso simples:
1 01111110 10000000000000000000000
Pgina 27
Nesta notao, cinco grupos diferentes de nmeros podem ser representados: nmeros normalizados, zero, nmeros no-normalizados, infinito e no-nmeros (NaN): 1. Os nmeros normalizados utilizam um expoente que vai de 1 a 254 (ou 1 a 2046, ou 1 a 32766), o primeiro bit do significando (L) sempre um e por isto no representado. 2. O Zero representado por um nmero todo em zero (E=F=L=0); note-se que o zero neste caso pode ter sinal. 3. Nmeros no normalizados possuem o expoente em zero (E=0) e uma frao no zero. Seu uso restrito para representao do nmeros que no podem ser normalizados sem causar underflow. 4. O Infinito representado pelo maior valor do expoente (E=255 ou 2047 ou 32767) e por uma frao em zero (F=L=0). Note-se que o infinito pode ter sinal. 5. No-nmeros (Not a Number) so representados pelo maior expoente e por uma frao diferente de zero. Seu uso previsto inclui a indicao de cdigos de erro, situaes imprevistas, etc. O bit de sinal (S) representado no bit mais significativo; os bits seguintes representam o expoente. Os bits menos significativos so destinados ao significando. Note-se que o bit L no representado (exceto na notao qudrupla).
Pgina 28
Pgina 29
Tabela ASCII
Binrio 0010 0000 0010 0001 0010 0010 0010 0011 0010 0100 0010 0101 0010 0110 0010 0111 0010 1000 0010 1001 0010 1010 0010 1011 0010 1100 0010 1101 0010 1110 0010 1111 0011 0000 0011 0001 0011 0010 0011 0011 0011 0100 D H 32 20 33 21 34 22 35 23 36 24 37 25 38 26 39 27 40 28 41 29 42 2A 43 2B 44 2C 45 2D 46 2E 47 2F 48 30 49 31 50 32 51 33 52 34 G Binrio vazio 0100 0000 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 0100 0001 0100 0010 0100 0011 0100 0100 0100 0101 0100 0110 0100 0111 0100 1000 0100 1001 0100 1010 0100 1011 0100 1100 0100 1101 0100 1110 0100 1111 0101 0000 0101 0001 0101 0010 0101 0011 0101 0100 D 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 H 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 G @ A B C D E F G H I J K L M N O P Q R S T Binrio 0110 0000 0110 0001 0110 0010 0110 0011 0110 0100 0110 0101 0110 0110 0110 0111 0110 1000 0110 1001 0110 1010 0110 1011 0110 1100 0110 1101 0110 1110 0110 1111 0111 0000 0111 0001 0111 0010 0111 0011 0111 0100 D 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 H 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 G ` a b c d e f g h i j k l m n o p q r s t
Pgina 30
0011 0101 0011 0110 0011 0111 0011 1000 0011 1001 0011 1010 0011 1011 0011 1100 0011 1101 0011 1110 0011 1111
53 35 54 36 55 37 56 38 57 39 58 3A 59 3B 60 3C 61 3D 62 3E 63 3F
5 6 7 8 9 : ; < = > ?
0101 0101 0101 0110 0101 0111 0101 1000 0101 1001 0101 1010 0101 1011 0101 1100 0101 1101 0101 1110 0101 1111
85 86 87 88 89 90 91 92 93 94 95
55 56 57 58 59 5A 5B 5C 5D 5E 5F
U V W X Y Z [ \ ] ^ _
0111 0101 0111 0110 0111 0111 0111 1000 0111 1001 0111 1010 0111 1011 0111 1100 0111 1101 0111 1110
117 118 119 120 121 122 123 124 125 126
75 76 77 78 79 7A 7B 7C 7D 7E
u v w x y z { | } ~
Referncias Bibliogrficas:
(1) Acessado em: http://www.users.rdc.puc-rio.br/rmano/comp1inf.html (2) Acessado em: http://www.inf.puc-rio.br/~francis/Organizacao.htm (3) Acessado em: http://icea.gov.br/ead/anexo/index.htm (4) Gonick, L. Introduo Ilustrada Computao. Editora Harper & Row do Brasil, 1984. (5) Monteiro, M. Introduo Organizao de Computadores. Editora LTC, 2 Edio. (6) Acessado em: http://www.ufpa.br/dicas/progra/arq-asc.htm
Pgina 31