A maior rede de estudos do Brasil

Grátis
217 pág.
NotasdeAula_CN

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