Você está na página 1de 18

Arquitetura de Computadores

03 - Aritmética de númeeros de ponto flutuante

Prof. Laerte M. Rodrigues


laerte.rodrigues@ifmg.edu.br
Números decimais

I Formato de representação de números decimais


I É chamado de ”ponto flutuante” porque não existe um
“separador” em sua representação de forma direta
I Em determinadas operações é comum imprecisão na
parte fracionada
I Notação científica
I Um número no intervalo de ]-10,+10[ é utilizado para representar
o número
Números decimais
I A potência de 10 é usada para representar o “deslizamento” da
vírgula no número
I 1500000 → 1, 5x106
I 0, 000015 → 1, 5x10−5
I No sistema binário podemos utilizar o conceito da notação
científica
I ±BxM ±E onde
I M é a mantissa
I E é o expoente
I B a base (implicita como 2)
Representação de números de ponto
flutuante

I O expoente têm sua representação polarizada


I Um valor fixo deve ser subtraído do expoente para saber seu
verdadeiro valor (para float de 32 bits é 127)
I Mantissa é sempre representada por 24 bits (o primeiro bit é
sempre 1, logo é implicito)
I O sinal obedece a regra de 0 para positivo e 1 para negativo
Representação de números de ponto
flutuante
I Exemplos:
I 0, 11010001x210100 = 0.10010011.10100010000000000000000
I −0, 11010001x210100 = 1.10010011.10100010000000000000000
I 0, 11010001x2−10100 = 0.01101011.10100010000000000000000
I −0, 11010001x2−10100 = 1.01101011.10100010000000000000000
I Características
I O sinal é armazenado no primeiro bit da palavra
I Pode-se representar números entre 2−31 à 231
Overflow e underflow
I Números menores que −(1 − 224x2128) (Overflow em
números negativos)
I Números maiores que (1 − 224x2128) (Overflow em números
positivos)
I Números maiores que −0.5x2−127 até 0 (Underflow em
números negativos)
I Números menores que 0.5x2−127 até 0 (Underflow em
números positivos)
Características
I Os números em ponto flutuante não estão igualmente
distribuídos ao longo da reta
I Quanto mais distante da origem, menor é a quantidade
I Trade-off:
I Se aumentarmos o expoente, aumentamos a faixa de
representação
I Se aumentarmos a mantissa, aumentamos a quantidade de
números que podem ser representados
I Os cálculos feitos com pontos-flutuantes necessitam de
arredondamento
Características
I A cada operação o resultado possui um “erro”
(principalmente para números com precisão maior que o
processador suporta)
I Exemplo:
I Números transcedentais
I Dízimas periódicas
I Este padrão de representação é especificado pela IEEE
754-1985
I Usado amplamente em praticamente todos os
processadores e co-processadores aritméticos modernos
Características
I Define um formato simples de 32 bits (float) e outro de
formato duplo de 64 bits (double)

I
Soma e subtração

I A adição e subtração é complexa


I Deve-se alinhar os expoentes
I Etapas da operação
I Verificar se um dos operandos é 0
I Alinhar mantissas
I Adicionar/subtrair as mantissas
I Normalizar resultado
Multiplicação

I Mais simples que a soma e a subtração


I Se um dos termos for 0, o resultado também será 0
I Soma-se os expoentes
I Se o expoente não estiver dentro da faixa de números
representáveis reporta-se o erro de overflow ou underflow
(dependendo do caso
I Multiplicação da mantissa
I Normalização e arredondamento do resultado
Multiplicação

I ]
Divisão

I Se o divisor for 0, reportar erro


I Se o dividendo for 0, resultado será 0
I O expoente do divisor é subtraído pelo expoente do dividendo
I Verifica erros de underflow e overflow
I Divisão das mantissas
I Normalização e arredondamento
Divisão

I
Política de arredondamento
I Afeta diretamente o resultado
I Perda de precisão
I O resultado de qualquer operação sobre a mantissa é
armazenado em um registrador de tamanho maior
I Quando o resultado é colocado novamente no formato de
ponto flutuante, a mantissa é truncada
I O padrão IEEE também traz procedimentos específicos para
que os resultados possam ser previsíveis
I Representação:
Política de arredondamento

I Infinito: Operações que estouram os →limites inferior e superior


de representação
I 1x1050 + 1x1050 = Inf inity
I NaN (Not a Number): Representa erros que são silenciados por
operações
I 0.0/0.0 = N aN
Sinalizadores

I Representações especiais de ponto flutuante


I Erros em ponto flutuante não causam interrupção na execução
do programa
I Erros aritméticos que se propagam
I Resultado se torna inválido
Sinalizadores

Você também pode gostar