Buscar

Conversão de Números e Ponto Flutuante

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

GEX114 - Ca´lculo Nume´rico
Profa.Dra.Amanda Castro Oliveira
Departamento de Cieˆncias Exatas - DEX/UFLA
amanda@dex.ufla.br
Aula 3
Conversa˜o de nu´meros nos sistemas decimal e bina´rio
De bina´rio para decimal simplesmente escrevemos o nu´mero
bina´rio como uma soma de poteˆncias da base
De decimal para bina´rio temos que dividir o processo em duas
partes:
Parte inteira: diviso˜es sucessivas
Parte fraciona´ria: multiplicac¸o˜es sucessivas.
O computador armazena os nu´meros com um nu´mero finito
de d´ıgitos. Este tipo de “problema” pode gerar erros bizarros!
1.4.1 Aritme´tica de ponto flutuante
Ponto fixo e ponto flutuante
Ate´ agora so´ vimos nu´meros em que a posic¸a˜o do ponto estava
fixa indicando a separac¸a˜o da casa das unidades da primeira casa
fraciona´ria. Mas e´ poss´ıvel variar a posic¸a˜o do ponto mantendo o
seu valor apenas multiplicando-o por uma poteˆncia da base seja ela
qual for.
Vejamos o que ocorre no sistema decimal:
(45.31)10 = 4.531 ∗ 101 = 0.4531 ∗ 102 = 453.2 ∗ 10−1
Chamamos isto de ponto flutuante, pois ao inve´s de deixarmos a
posic¸a˜o do ponto entre as unidades e a 1a casa fraciona´ria
flutuamos(variamos) o ponto e corrigimos com a poteˆncia de 10
adequada para mantermos o valor absoluto do nu´mero.
1.4.1 Aritme´tica de ponto flutuante
Na representac¸a˜o bina´ria tambe´m podemos fazer o mesmo
vejamos:
(110101)2 = 110.101 ∗ 23 = 1.10101 ∗ 25 = 0.0110101 ∗ 27
Assim vemos que sempre poderemos escrever todo os nu´meros
bina´rios da seguinte forma:
0.110101 ∗ 27
1.1 ∗ 2−3 = 0.11 ∗ 2−2
1.001 ∗ 2−1 = 0.1001 ∗ 20
Enta˜o para representar os nu´meros reais na base bina´ria e´
necessa´rio armazenar somente a mantissa e o expoente.
1.4.2 Sistema de ponto flutuante normalizado
Uma ma´quina(computador ou calculadora), representa um nu´mero
real no sistema denominado aritme´tica de ponto flutuante. Neste
sistema, o nu´mero x sera´ representado na forma:
±(.d1d2 · · · dt) ∗ βe
onde:
β e´ a base em que a ma´quina trabalha;
t e´ o nu´mero de d´ıgitos na mantissa,t ∈ N;
0 ≤ dj ≤ (β − 1),j = 1, · · · , t com d1 6= 0;
e e´ o expoente no intervalo [l , u].
Seja qual for a ma´quina, apenas um subconjunto dos nu´meros
reais sera´ representado exatamente, e portanto um dado nu´mero
real sera´ representado atrave´s de uma aproximac¸a˜o de truncamento
ou arredondamento.
1.4.2 Sistema de ponto flutuante normalizado
A unia˜o de todos os nu´meros em ponto flutuante, juntamente com
a representac¸a˜o do zero, constitui o sistema de ponto flutuante
normalizado que e´ indicado por: SPF(β, t, l , u).
Neste sistema, o zero e´ representado da seguinte maneira:
zero : .000 · · · 000︸ ︷︷ ︸
t vezes
∗βl
Considerando este sistema de ponto flutuante normalizado dado na
forma gene´rica SPF(β, t, l , u), temos:
a) O menor nu´mero positivo representa´vel, na˜o nulo, e´ o
real formado pela menor mantissa multiplicada pela
base elevada ao menor expoente, isto e´:
m = .1 00 · · · 0︸ ︷︷ ︸
t−1 vezes
∗βl
1.4.2 Sistema de ponto flutuante normalizado
b) O maior positivo exatamente representa´vel e´ o real
formado pela maior mantissa multiplicado pela base
elevada ao maior expoente, ou seja:
M = . (β − 1)(β − 1) · · · (β − 1)︸ ︷︷ ︸
t vezes
∗βu
c) O nu´mero ma´ximo de mantissas positivas poss´ıveis e´
dado por:
mantissas+ = (β − 1)βt−1
d) O nu´mero ma´ximo de expoentes poss´ıveis e´ dado por:
expposs = u − l + 1
1.4.2 Sistema de ponto flutuante normalizado
e) O nu´mero de elementos positivos representa´veis e´
dado pelo produto do nu´mero ma´ximo de mantissas
pelo ma´ximo de expoentes:
NR+ = mantissas+ ∗ expposs
Portanto o nu´mero total de elementos exatamente representa´veis
num SPF e´ dado por:
NRt = 2 ∗ NR+ + 1.
1.4.2 Sistema de ponto flutuante normalizado
Exemplo:Considere o sistema de ponto flutuante normalizado
SPF(2,3,-1,2), isto e´, de base 2, 3 d´ıgitos na mantissa, menor
expoente l = −1 e maior expoente u = 2. zero:.000 ∗ 2−1
a) m = .100 ∗ 2−1
b) M = .111 ∗ 22
c) mantissas+ = (β − 1)βt−1, logo mantissas+ = 4
d) expposs = u − l + 1, enta˜o expposs = 4
e) NR+ = mantissas+ ∗ expposs , portanto NR+ = 16
Exerc´ıcio:Considere o sistema de ponto flutuante normalizado
SPF(3,2,-1,2) descreva todos os nu´meros exatamente
representa´veis.
1.4.2 Sistema de ponto flutuante normalizado
Considere o conjunto dos nu´meros reais R e o seguinte conjunto:
G = {x ∈ R|m ≤ |x | ≤ M}
onde SPF(10,3,-5,5) Dado um nu´mero real x , podem ocorrer
va´rios casos:
1 x ∈ G : por exemplo x = 250.78 = 0.25078 ∗ 103. Este
nu´mero possui 5 d´ıgitos na mantissa!! Nesta ma´quina esta˜o
representados exatamente os nu´meros 0.250 ∗ 103 e
0.251 ∗ 103. se for usado o truncamento, x sera´ representado
pelo primeiro(0.250 ∗ 103), mas se for usado arredondamento
sera´ pelo u´ltimo(0.251 ∗ 103).
2 x < m : se x = 0.345 ∗ 10−7. Este nu´mero na˜o pode ser
representado nesta ma´quina pois seu expoente e´ menor que
−5 nete caso temos UNDERFLOW.
3 x > M : se x = 0.751 ∗ 108. Como seu expoente e´ maior que 5
a ma´quina na˜o consegue representa´-lo e acusa OVERFLOW.
1.4.2 Sistema de ponto flutuante normalizado
Considere o conjunto dos nu´meros reais R e o seguinte conjunto:
G = {x ∈ R|m ≤ |x | ≤ M}
onde SPF(10,3,-5,5) Dado um nu´mero real x , podem ocorrer
va´rios casos:
1 x ∈ G : por exemplo x = 250.78 = 0.25078 ∗ 103. Este
nu´mero possui 5 d´ıgitos na mantissa!! Nesta ma´quina esta˜o
representados exatamente os nu´meros 0.250 ∗ 103 e
0.251 ∗ 103. se for usado o truncamento, x sera´ representado
pelo primeiro(0.250 ∗ 103), mas se for usado arredondamento
sera´ pelo u´ltimo(0.251 ∗ 103).
2 x < m : se x = 0.345 ∗ 10−7. Este nu´mero na˜o pode ser
representado nesta ma´quina pois seu expoente e´ menor que
−5 nete caso temos UNDERFLOW.
3 x > M : se x = 0.751 ∗ 108. Como seu expoente e´ maior que 5
a ma´quina na˜o consegue representa´-lo e acusa OVERFLOW.
1.4.2 Sistema de ponto flutuante normalizado
Considere o conjunto dos nu´meros reais R e o seguinte conjunto:
G = {x ∈ R|m ≤ |x | ≤ M}
onde SPF(10,3,-5,5) Dado um nu´mero real x , podem ocorrer
va´rios casos:
1 x ∈ G : por exemplo x = 250.78 = 0.25078 ∗ 103. Este
nu´mero possui 5 d´ıgitos na mantissa!! Nesta ma´quina esta˜o
representados exatamente os nu´meros 0.250 ∗ 103 e
0.251 ∗ 103. se for usado o truncamento, x sera´ representado
pelo primeiro(0.250 ∗ 103), mas se for usado arredondamento
sera´ pelo u´ltimo(0.251 ∗ 103).
2 x < m : se x = 0.345 ∗ 10−7. Este nu´mero na˜o pode ser
representado nesta ma´quina pois seu expoente e´ menor que
−5 nete caso temos UNDERFLOW.
3 x > M : se x = 0.751 ∗ 108. Como seu expoente e´ maior que 5
a ma´quina na˜o consegue representa´-lo e acusa OVERFLOW.
1.4.2 Sistema de ponto flutuante normalizado
A precisa˜o dos nu´meros armazenados em cada ma´quina
sempre dependera´ do tamanho da mantissa.
Em algumas linguagens de programac¸a˜o e´ poss´ıvel escolher a
precisa˜o dupla e a mantissa podera´ ter o dobro de d´ıgitos
dispon´ıveis o que aumentara´ a precisa˜o.
Em contrapartida o tempo de execuc¸a˜o e requerimentos de
memo´ria aumentam de forma significativa.
1.4.3 Zero em ponto flutuante
O zero em ponto flutuante e´, em geral, representado com o menor
expoente poss´ıvel da ma´quina. Pois se representa´ssemos o zero por
uma mantissa nula e um expoente qualquer para a base β
poder´ıamos ter perda de d´ıgitos significativos no resultado da
adic¸a˜o deste zero a um outro nu´mero.
Exemplo: Considere o sistema de ponto flutuante normalizado
SPF(10,4,-4,4) tome x = 0.0000 ∗ 104 e y = 0.8756 ∗ 10−2
x+y = 0.0000∗104+0.8756∗10−2 = (0.000000+0.00000087)∗104 =
= 0.8700 ∗ 10−2
Sa˜o perdidos 2 d´ıgitos no valor exato de y . Isto ocorre devido a`
maneira como efetuamos as operac¸o˜es em ponto flutuante. Este
zero deixa de ser o elementoneutro da adic¸a˜o!! Ele na˜o serve!
Pro´xima aula
Ja´ vimos como uma ma´quina representa os nu´meros, agora
precisamos saber como lidar com os erros gerados pelos nu´meros
que ela na˜o consegue representar.
Por que o estudante de Ca´lculo Nume´rico na˜o afunda? Pois ele usa
ponto flutuante!!
Por hoje e´ so´ pessoal!!
Pro´xima aula
Ja´ vimos como uma ma´quina representa os nu´meros, agora
precisamos saber como lidar com os erros gerados pelos nu´meros
que ela na˜o consegue representar.
Por que o estudante de Ca´lculo Nume´rico na˜o afunda?
Pois ele usa
ponto flutuante!!
Por hoje e´ so´ pessoal!!
Pro´xima aula
Ja´ vimos como uma ma´quina representa os nu´meros, agora
precisamos saber como lidar com os erros gerados pelos nu´meros
que ela na˜o consegue representar.
Por que o estudante de Ca´lculo Nume´rico na˜o afunda? Pois ele usa
ponto flutuante!!
Por hoje e´ so´ pessoal!!

Outros materiais