217 pág.

Pré-visualização | Página 5 de 38
sistema octal para o sistema decimal ocorre de forma seme- lhante à apresentada para os binários. Portanto, um número em octal é convertido para decimal usando a relação: an8 n + · · ·+ a282 + a181 + a080 + a−18−1 + a−28−2 + · · ·+ a−m8−m, onde os ai são dígitos pertencentes à base octal. erros computacionais 21 Exemplo 1.6 Seja o número em octal 7634, 152β=8. O valor correspondente em decimal é 7× 83 + 6× 82 + 3× 81 + 4× 80 + 1× 8−1 + 5× 8−2 + 2× 8−3 ≈ 3996, 207031β=10. Observe que 8 = 23; portanto, cada algarismo da base octal requer três alga- rismos da base binária para a conversão octal-binário. A tabela de conversão da base octal-binário é dada por: Octal 0 1 2 3 4 5 6 7 Bina´rio 000 001 010 011 100 101 110 111 Utilizando essa relação de grupo para conversão dos algarismos na base octal pelos correspondentes na base binária, a conversão torna-se bastante simples. O octal 7634, 152β=8 ≡ 111 110 011 100, 001 101 010β=2, pois, lembrando que os sistemas são posicionais, podemos substituir para cada posição do algarismo octal seu correspondente agrupamento em binário. Assim, no caso do algarismo 7, temos: 7 ≡ 7× 83 ≡ 7× 29 ≡ (1× 22 + 1× 21 + 1× 20)× 29 ≡ 1× 211 + 1× 210 + 1× 29 ≡ 111 · · · A conversão de binário para octal ocorre de maneira inversa. Basta consi- derarmos agrupamentos de três dígitos binários, a partir da vírgula, e substituir pelo correspondente algarismo da base octal. Exemplo 1.7 Conversão do binário 11011, 10111 para octal. Formando os gru- pos, temos: 011︸︷︷︸ 011︸︷︷︸ , 101︸︷︷︸ 110︸︷︷︸ 3 3 , 5 6 Assim, 11011, 10111β=2 = 33, 56β=8. Sistema hexadecimal O sistema hexadecimal é formado por uma base que contém 16 elementos, os quais são: β16 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,B,C,D,E, F}. A conversão entre hexadecimal e decimal é imediata, usando an16 n + · · ·+ a2162 + a1161 + a0160 + a−116−1 + a−216−2 + · · ·+ a−m16−m, onde n,m são números inteiros e os ai são elementos da base hexadecimal. 22 cálculo numérico Exemplo 1.8 Converta o número 6AC,E9β=16 para decimal. Tomando a relação de conversão, obtemos: 6× 162 + 10× 161 + 12× 160 + 14× 16−1 + 9× 16−2 ≈ 1708, 910156 A conversão de hexadecimal para binário segue o mesmo raciocínio usado entre octal e binário. Observe que 16 = 24; assim, cada algarismo em hexadecimal corresponde a um agrupamento de 4 algarismos binários. Exercício 1.4 Construa a tabela de conversão dos algarismos da base hexade- cimal para binário. Em seguida, converta o número 76EA, 0Dβ=16 para binário. Qual o valor em hexadecimal do número 101111.0110111β=2? 1.2 Sistema de ponto �utuante Nos computadores, o processamento da informação é realizado em quantidades �xas, tendo como base uma unidade-padrão. Essa unidade recebe o nome de pa- lavra, e o número de dígitos que compõe uma palavra é chamado de comprimento da palavra do computador. Atualmente, os computadores utilizam diferentes arquiteturas, que empregam palavras de comprimentos distintos. Os microcom- putadores utilizam uma palavra de comprimento 16 bites (dígitos binários), as estações de trabalho usam uma palavra de 32 bites e os supercomputadores usam palavras de comprimento 64 bites, para a representação dos números reais. Em um computador, apenas uma quantidade �nita de números pode ser re- presentada. Os números inteiros podem ser representados de forma exata, desde que o comprimento da palavra seja su�ciente para o armazenamento de todos os seus dígitos. Por outro lado, os números reais não são completamente representados no computador. Dessa forma, erros surgem, em virtude da conversão numérica de um sistema de numeração para outro, em particular, de decimal para binário, como já vimos, ou mesmo devido a arredondamentos, em virtude do comprimento �nito da palavra do computador. As primeiras arquiteturas de computador empregavam uma representação dos números chamada de representação de ponto �xo, em que, para cada operação, o usuário tinha que especi�car quantos dígitos deveriam ser usados em uma palavra, para representar as partes inteiras e fracionárias de um número real. Um dos problemas dessa arquitetura é a representação simultânea de números grandes e pequenos nesse sistema. erros computacionais 23 Por exemplo, se tivermos um computador cujo comprimento da palavra é sete bites, e usarmos quatro dígitos para a parte inteira e três para a parte fracioná- ria, o maior número representado por esse computador no sistema decimal será 9999, 999, e o menor, 0000, 001, respectivamente. Para possibilitar maior representatividade dos números, esse problema foi me- lhorado por meio da representação em ponto �utuante. 1.2.1 Representação em ponto �utuante A representação dos números em ponto �utuante permite expressarmos um número real r na base β em uma forma canônica, como: r = ±0, d1d2 . . . dt × βe = ± ( d1 β1 + d2 β2 + · · ·+ dt βt ) × βe, (1.4) onde β é a base do sistema de numeração adotado, e é o expoente da base, tal que I ≤ e ≤ S, e ∈ Z, com I o limite inferior e S o limite superior para a variação do expoente. De�nição 1.3 Os dígitos d1d2 . . . dt formam a mantissa do número e represen- tam seus dígitos signi�cativos. Cada elemento di da mantissa é um símbolo da base β do sistema de numera- ção. Chamando de q = ± 0.d1 . . . dt a mantissa de um número, é fácil veri�carmos que o valor da mantissa q é limitado. De�nição 1.4 Um número r na representação de ponto �utuante é dito norma- lizado quando o dígito d1 de sua mantissa é tal que d1 6= 0. De�nição 1.5 O número t de dígitos signi�cativos do sistema de ponto �utuante corresponde à precisão da máquina. Exemplo 1.9 Seja a base decimal β = 10. O número r = 25, 87 é representado em ponto �utuante normalizado como: 0, 2587 = ( 2 10 + 5 102 + 8 103 + 9 104 ) × 102. O número 5β=10 é representado em binário na representação de ponto �utuante com 101β=2 = 0, 101× 23 = ( 1 2 + 0 22 + 1 23 ) × 23. 24 cálculo numérico Tabela 1.1: Exemplos de sistemas de ponto �utuante. F (β, t, I, S) β t I S Padrão IEEE 2 23 −126 127 IBM 3090 16 5 −65 62 CRAY X-MP 2 47 −16385 8190 De�nição 1.6 O número zero em ponto �utuante é representado por 0β = 0, 000 . . . 0t × βI. A união de todos os números em ponto �utuante, incluindo o zero, é denomi- nada de sistema de ponto �utuante da máquina e denotado por F (β, t, I, S). Na Tabela 1.1, são apresentados os sistemas de ponto �utuante para algumas máquinas. Em muitas linguagens de programação, como Fortran, é possível operar com uma representação de ponto �utuante com precisão dupla. Nesse caso, o sistema é implementado de tal forma que a máquina passa a utilizar duas palavras para armazenar um número, permitindo maior precisão e um intervalo maior de representatividade dos números. De forma geral, as máquinas possuem precisão simples implementada em hardware, enquanto a precisão dupla é implementada via software. Atualmente, há vários sistemas computacionais disponíveis, tanto para cál- culo numérico especi�camente quanto para cálculo simbólico e algébrico, além de possuirem facilidades grá�cas. Dentre os sistemas para cálculo numérico o MATLAB R© é um excelente sistema comercial, porém o SCILAB é um sistema aberto alternativo de excelente qualidade (http://www.scilab.org/). Os sistemas de computação algébrica (SCA), são capazes de realizar cálculos simbolicamente e com precisão arbitrária, porém na prática a precisão torna-se �nita devido às limitações impostas pelo próprio hardware da máquina. Exemplos de tais SCA comerciais são MAPLE R© e MATHEMATICA R© ; enquanto o MAXIMA é livre e pode facilmente ser baixado da internet (http://maxima.sourceforge.net/). 1.2.2 Representação compacta de um número