Você está na página 1de 3

Elise Scheibel Prezzi

Matrícula 19109012

Matemática de ponto flutuante

Antes de falar de pontos flutuantes, precisamos primeiro falar sobre erro de


arredondamento.
ERRO DE ARREDONDAMENTO
O problema do erro de arredondamento vem de tentar representar um
número Real com infinitos dígitos no espaço finito de armazenamento dos
computadores. Cálculos com números inteiros podem geralmente ser armazenados
em 32 bits, mas com números mais complexos(Floats), por mais casas após a
vírgula usarmos para os representar, é impossível ter precisão absoluta, e por isso
precisam ser arredondados para uma representação finita, subsequentemente
podendo causar erros aritméticos.
Para ter certeza que falhas como essa não aconteçam, e que diferentes
máquinas arredondem valores do mesmo modo , um padrão matemático de
arredondamento foi instaurado, chamado Aritmética de ponto flutuante.

ponto flutuante
A representação de ponto flutuante pode ser feita como +-d.ddd...d * β^e,
sendo β a base, “e” o expoente da base e os vários Ds representantes do
Significand. há também mais uma variável p(precisão), que representa quantos
dígitos o Significand tem. De forma mais rigorosa, o ponto flutuante pode ser
representado pela seguinte fórmula:

Por exemplo, para Significand 0.1, base 10 e precisão 3, a representação vai


ser dada como 1.00 * 10^-3.
no geral 10 é a base mais usada para estas representações, mas outros
valores podem ser usados também, como β = 2(base binária) e p = 24, o qual não
pode ser fielmente representado para o Significand anterior, mas resulta
aproximadamente em 1.10011001100110011001101101 * 2^-4.
outros parâmetros relacionados com o ponto flutuante são o expoente
máximo e mínimo que β pode ter (emax e emin), os quais podem ser usados para
calcular quantos bits serão precisos para armazenar o número usando a seguinte
fórmula:
PADRÕES IEEE
Existem dois padrões principais para computação de ponto flutuante,sendo
um deles IEEE-854 e o outro IEEE-754, também chamado de IEEE-1987. IEEE-754
requer 24 para precisão(53 para precisão dupla) e, como é um padrão binário, exige
uma base de 2. A distribuição de bits é dada sendo 1 bit para o sinal, 8 para o
expoente, 23 para o significand e um bit escondido extra,totalizando 32 bits de
armazenamento.
Este padrão oferece 4 tipos de precisão: Single, Double, Single estendido e
Double estendido. A grande maioria dos hardwares atuais suporta apenas Single e
Double, que respectivamente ocupam 32 e 64 bits. Suas versões extendidas não
tem um número exato de quantos bits são providenciados, porém especificam que
Single tenha no mínimo 43 bits de armazenamento e double, 80 bits.
Ironicamente, o padrão enfatiza o uso das previsões estendidas, citando
como motivo a necessidade de rápida conversão de binário para decimal e
vice-versa, pois o menor dos erros de precisão podem ocasionar em uma grande
divergência do resultado esperado.

hardware
Por mais que a maioria dos hardwares atuais suportem os padrões IEEE, não há
uma diretriz exata de como linguagens de programação devem interagir com o
padrão, causando certas divergências nos resultados. Algumas funcionalidades,
como raiz quadrada, uma função implementada diretamente no hardware, são
facilmente traduzidos para a programação através da chamada de sua
respectiva biblioteca, outras rotinas no entanto não são especificadas da mesma
forma. como por exemplo: há uma subrotina para o infinito ∞, porém, a mesma
não pode ser usada em situações que necessitam de valores constantes,
fazendo necessário procurar outras alternativas para a representação.
Outro problema é a indecisão a quais tipos de precisão devem ser usados, já
que enquanto o padrão fornece 4 tipos, enquanto a maioria das máquinas
suporta apenas 2, nas quais a escolha varia dependendo das necessidades do
hardware.

REFERÊNCIAS
[1] DAVID GOLDBERG. What Every Computer Scientist Should Know About
Floating-Point Arithmetic, ACM Computing Surveys, Vol 23, No1, March 1991.
Disponível em:
<https://docs.oracle.com/cd/E19957-01/806-3568/index.html>
[2] Virgula Flutuante, wikipedia - Disponivel em:
<https://pt.wikipedia.org/wiki/Vírgula_flutuante>
[3] IEEE 754, wikipedia - Disponivel em: <https://en.wikipedia.org/wiki/IEEE_754>
[4] floating point case study, intel - Disponível em:
<https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&ua
ct=8&ved=2ahUKEwiBoqHL_OrwAhXRSzABHWD8A5kQFjALegQIHRAD&url=https
%3A%2F%2Fwww.intel.com%2Fcontent%2Fdam%2Fwww%2Fpublic%2Fus%2Fen
%2Fdocuments%2Fcase-studies%2Ffloating-point-case-study.pdf&usg=AOvVaw1no
mM8iYnRM2eYuwMzD8SC>

Você também pode gostar