TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalho De Calculo Numérico Computacional

Casos: Trabalho De Calculo Numérico Computacional. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  21/10/2013  •  1.470 Palavras (6 Páginas)  •  879 Visualizações

Página 1 de 6

Padrão IEEE 754

A norma IEEE 754, publicada em 1985, procurou uniformizar a maneira como as diferentes máquinas representam o número em ponto flutuante, bem como devem operá-los. Essa norma define dois formatos básicos para os números em ponto flutuante: o formato simples, com 32 bits e o duplo com 64 bits. O primeiro bit é para o sinal: 0 representa número positivo e 1 representa número negativo. No formato simples o expoente tem 8 bits e a mantissa tem 23 bits; no formato duplo, o expoente tem 11 bits e a mantissa 52 bits.

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 número representado em binário menos 127. Antes disso, cada fabricante de computadores e outros dispositivos, possuía um formato de representação diferente.

Normalização

Para que o número esteja de acordo com as normas, deve obedecer a seguinte configuração:S M * 2E onde S é o sinal, M é a mantissa ou parte fracionaria, 2 é a base (binário) e E é o expoente. Deve ter a mesma forma utilizada em notação científica.

Na representação em bits, usa-se a seguinte configuração:

Sinal Expoente Mantissa

Exemplo:

+ 9,5 decimal => + 1,00011 * 2³

0 10000010 00110000000000000000000

Sinal

Independente do sistema de precisão utilizado, o sinal sempre é representado por apenas um bit, podendo ser negativo (1) ou positivo (0).

Arredondamento

Embora o arredondamento possa alterar ligeiramente o resultado, muitas vezes se faz necessário. Quando isso ocorre, as regras são semelhantes às utilizadas no arredondamento de números decimais. Temos:

Arredondamento em direção ao zero (round toward 0): despreza-se os bits “excedentes”;

Arredondamento em direção ao infinito positivo (round toward +∞): arredonda para cima;

Arredondamento em direção ao infinito negativo (round toward -∞): arredonda para baixo;

Arredondamento para o mais próximo (round to the nearest): quando está entre dois números, aproxima-se para o mais próximo, devendo terminar em zero.

Exemplo:

Número inicial: 1,0011101 (está entre 1,0011 e 1,0100)

Tipo de Arredondamento Final

Para zero 1,0011

Para +∞ 1,0100

Para -∞ 1,0011

Aproximação 1,0100

Parte Inteira

Deve haver apenas um número antes da vírgula, ou seja, o 1. Porém, somente a parte fracionária do número é representada, pois a parte inteira, que sempre será 1, fica implícita. Assim, o bit que deixou de ser ocupado, poderá ser utilizado pelo expoente, proporcionando uma maior precisão.

Expoente

O expoente deve ser ajustado de acordo com as normas, sendo somado ao número padronizado -Bias- 127 (simples) ou 1023 (dupla).

Precisão

Quanto à precisão da representação numérica, as principais são:

Simples

32 bits ou precisão simples (float), equivalente a até 7 dígitos decimais.

1 bit para o sinal.

8 bits para o expoente.

23 bits para a representação da mantissa.

Dupla

64 bits ou precisão dupla (double), equivalente a até 15 dígitos decimais.

1 bit destinado para o sinal;

11 bits destinados para o expoente;

52 bits destinados para a mantissa.

Valores Especiais

Valor Sinal Expoente Mantissa

Zero 0 0s 0s

+Infinito 0 1s 1s

-Infinito 1 1s 1s

NaN 0 1s Diferente de 0s

No padrão IEEE 754, os NaN (Not a Number), possuem sinal 0, expoente 1 e mantissa com qualquer valor - exceto tudo 0s, pois isso caracteriza infinito- e representam exceções como divisão por zero, raiz de negativos etc.

Tomando por base o primeiro exemplo, -9.5, vamos representá-lo como ponto flutuante com precisão 32 bits. Exemplo:

Sinal negativo → 1

9,5 para binário → 1001,1

deslocamos a vírgula → 1,0011 * 2³

Agora que temos o expoente 3, devemos normalizá-lo → 3+127 = 130

Em binário temos 3 = 11 e 127 = 1111111, somando os dois temos → 10000010

Resultado:

1 10000010 00110000000000000000000

Os espaços restantes são preenchidos com zeros.

Convertendo número binário para decimal

Para converter binários de ponto flutuante para decimal, devemos fazer o inverso do que fizemos acima.

Primeiramente, devemos identificar os componentes e decompô-los em sinal, expoente (8 ou 11 bits) e o restante será a mantissa.

Não devemos esquecer de recompor a parte inteira, ou seja o 1.

Exemplo:

1 10000010 00110000000000000000000

sinal expoente fração

expoente → 130-127 = 3

reconstituindo a parte inteira e adicionando-a a mantissa → 10011

adicionando a vírgula

...

Baixar como (para membros premium)  txt (10.5 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com