Professional Documents
Culture Documents
Sumrio
Introduo Representao de nmeros no inteiros Aritmtica de nmeros no inteiros
Introduo
Muitas aplicaes requerem nmeros no inteiros Matemtica computacional, Engenharia Computao grfica Racionais (Q): Representados como frao a/b, a e b inteiros; Irracionais (I): Tem mantissa infinita sem repetio (e=2.7218 e = 3.14, por exemplo) Mas com representar um nmero fracionrio computacionalmente?
Sumrio
Introduo Representao de nmeros no inteiros Aritmtica de nmeros no inteiros
Representao
Primeiros computadores Ponto fixo Hoje, apenas ponto flutuante; representaes possuem uma mantissas, um
N ( s) b e
Antigamente haviam muitos formatos, hoje h um padro (IEEE 754)
Inclui valores especiais: NaN - Not a number (ex: raiz de negativo); - e + - Mais ou menos infinito (ex: -1/0 e +1/0);
preciso simples estendida (SE) 32 1023 -1022 depende varivel, 43, <64
0 10000001 01000000000000000000000 ((-1)0 x 1.01 x 2129-127)2= (+1.01 x 22 )2 = (+5 )10 2) Nmero negativo, menor que zero
31 30 23 22 0
Exerccios
Converter a representao que segue para o valor decimal 0x3FA00000 0xC1980000 Converter para representao em ponto flutuante (Single Precision) 5,5 -2, 625 9,375 x 10-2 Usando um padro de preciso mnima de 8 bits onde (sinal = 1bit,
Sumrio
Introduo Representao de nmeros no inteiros Aritmtica de nmeros no inteiros
Soma da mantissas
Normalizao
Operao de multiplicao Mais simples que a adio Deve-se multiplicar as mantissas Soma-se os expoentes (ER)
Adequao com a eliminao de pelo menos um desvio
Multiplicao, 0 e preciso
Se um dos operandos 0, acelera-se multiplicao testando:
Antes
Teste de ambos operandos;
Depois
Neste caso, cuidado com 0 x , resultado deve ser NaN;
x 1.0 = 1.0
-> EO=ER-DESVIO = 7
a)
1.23 x 6.78 8.3394 r=9, 9>5, ento arredonda p/8.34 2.83 x 4.47 12.6501 r=5, e pelo menos um dgito aps diferente de 0, arredonda p/ 1.27x101 1.28 x 7.81 09.9968 r=6, 6>5, ento arredonda p/ 1.00x101
em binrio, meio da faixa (5 em decimal) dgito 1! negrito - dgitos significativos; aps, dgito arredondador, r.
b)
c)
um diferente de 0 ou chegar ao fim: tcnica - usa o bit grudento (sticky bit), durante a multiplicao, o OU lgico de todos os bits a partir do bit r; Caso 1 - desloca um bit p/ esq; Caso 2 - incrementa expoente Produto (p=6) Caso 1: x0=0 Caso 2: x0=1 x0 x1 . x2 x3 x4 x5 g r s s s s r r sticky sticky
x1 . x2 x3 x4 x5 g
x0 . x1 x2 x3 x4 x5
se r=0, resultado correto; se r=1 e s=1, soma P+1 para arredondamento do produto; se r=1 e s=0, exatamente no meio da faixa o IEEE-754 possui quatro modos de tratamento (trunc, +, -, nearest).
Em resumo G = bit de guarda (melhora a preciso) R = bit de arredondamento (ajuda a encontrar valor mais prximo) S = bit grudento (bits a direita de R)
Algoritmo ideal
Calcula resultado exato e arredonda;
Multiplicao funciona assim;
Exemplo com nmeros de 6 bits: 1.100112 x 20 e 1.100012 x 2-5; Usando um somador de 6 bits, tem-se:
1.1 0 0 1 1 + 0.0 0 0 0 1 1.1 0 1 0 1
2) Se sinais de a1 e a2 diferem
Sendo d = e1-e2
Dos bits deslocados para fora do registrador, guarde: o o o O ltimo em um flip-flop g (bit de guarda) O penltimo em um flip-flop r (bit de arredondamento) O resultado da operao OU de todos os restantes (stick bit)
5)
Desloque S para a direita 1 bit o Preenchendo a posio de mais alta ordem com o vai-um (1). Seno, desloque S esquerda at normaliz-lo (encontre o bit fantasma)
o
o
Se houve um nico deslocamento esquerda, ento No mude o bit de arredondamento nem o sticky bit Se houve dois ou mais deslocamentos, ento
8)
Passo 2:
Sinais iguais, logo no faz o complemento de 2 de s2.
Passo 3:
Desloca s2 (1.001 aps a troca) direita dois bits gerando s2=0.010, g=0, r=1, s=0
Passo 5:
Como houve vai-um desloca S direita, S=1.000, e ajusta-se o expoente exp=exp+1, exp=1
Passo 7: arredonda
r=1e s=1, ento arredonda para cima S=S+1, S=1.001
Exerccio
Realize as somas que seguem
Considere valores representados em 5 bits
(+1.0010* 2129 ) + (+1.1000*2126 ) (+1.1010* 2124 ) + (+1.1010*2125 )