FAC - ic.uff.brboeres/slides_FAC/parte6eparte7.pdf · • característica ou como IEEE754 define,...

29
1 http://www.ic.uff.br/~boeres/FAC.html

Transcript of FAC - ic.uff.brboeres/slides_FAC/parte6eparte7.pdf · • característica ou como IEEE754 define,...

1

http://www.ic.uff.br/~boeres/FAC.html!

2

  Na representação em ponto fixo, a vírgula não é representada, mas assumida em uma posição

  Números fracionários utilizam a representação em ponto flutuante.

  Exemplo: 3,141592565 2,71828 1,0 x 10-9 3.155.160.000 = 3,15576 x 109

3

  Um formato especial é necessário para representar números muito grandes e frações muito pequenas

  ficaria difícil representar através de ponto fixo um valor como

0,00000000000000000000000000073 2537000000000000000000000000000

  e mais ainda a soma deles   Para tal

•  Notação científica – em computação: ponto flutuante

4

Notação científica  Um dígito à esquerda do ponto decimal

1,0 x 10-9

3,15576 x 109

 Notação científica normalizada •  não possui zero antes da vírgula

0,1 x 10-8, 10 e 0 x 10-10: não normalizadas 1,0 x 10-9 e 1,0 x 10-9: normalizadas

5

Notação científica – em duas partes  1ª parte:

• o sinal do número • sua parte significativa • sua precisão

 2ª parte: • grandeza do número (potência) ou valor do expoente

6

Notação científica N = +/- F × B +/-E

N número sendo representado +/- sinal

F dígitos significativos do número –  parte fracionária ou mantissa

B base do expoente E valor do expoente

7

  Números binários em notação científica normalizada

(1,0)2 x 2-1

  Representação de um número na base 2 em ponto flutuante

(1,mmmmm)2 x 2 yyy •  m = mantissa ou significando •  y = expoente

8

Vantagens desta notação

 Padrão para trocar dados  Simplifica aritmética devido a padronização de números  Pode representar grandes valores

•  Mas pode perder precisão

9

Representação do expoente

 sinal magnitude • mais simples

 complemento a 2 • maior eficácia para as operações • muito utilizado

 excesso em N

10

Excesso em N  calcula-se a seguinte expressão

(2n /2 -1)+ E = C

  n: quantidade de dígitos do expoente   E: valor real do expoente   C:

• característica ou como IEEE754 define, bias • valor armazenado no campo expoente

11

Excesso de N  exemplo

•  excesso de 127 •  n = 8 •  E = +37

–  então C = (28/2 – 1) + 37 = 128-1+37 = 164

–  (164)10 = (10100100)2

12

 podemos representar um número através de diferentes produtos

•  + 25 = + 25 X 1010

•  + 25 = 0,25 X 10+2

•  + 25 = 0,0025 X 10+4

•  etc

  Solução: normalização • mantissa: fracionário (menor que 1) • 1º algarismo após a vírgula ≠ zero

13

  vantagem: maior precisão •  + 25 = + 25 X 1010

•  + 25 = 0,25 X 10+2

•  + 25 = 0,0025 X 10+4

•  etc

  Solução: normalização • mantissa: fracionário (menor que 1) • 1º algarismo após a vírgula ≠ zero

14

Formato

 7 bits e 24 para expoente e mantissa é um exemplo

S expoente mantissa 1 bit 7 bits 24 bits

N = (+/-) 1,mmmmm × 2yyy campos Sinal mantissa

ou significando

expoente

15

Algoritmo: conversão para base b

i = -1 N* = N x b

di = parte inteira de N* enquanto (parte fracionária de N´ ≠ 0 ) E

(número de bits ≤ m )

N* = parte fracionária de N* x b i = i-1

di = (nova) parte inteira de N*

16

Ex.: 0,7265625 na base 10 para base 2 ?

17

Ex.: 0,7265625 na base 10 para base 2?

  0,7265625 × 2 = 1,453125 → d-1=1 0,453125 × 2 = 0,90625 → d-2=0 0,90625 × 2 = 1,8125 → d-3=1 0,8125 × 2 = 1,625 → d-4=1 0,625 × 2 = 1,25 → d-5=1 0,25 × 2 = 0,5 → d-6=0 0,5 x × = 1,0 → d-7=1

  (0,7265625)10 = (0,1011101)2

18

Ex.: 0,46 na base 10 para base 2?

  0,46 × 2 = 0,92 → d-1=0 0,92 × 2 = 1,84 → d-2=1 0,84 × 2 = 1,68 → d-3=1 0,68 × 2 = 1,36 → d-4=1 0,36 × 2 = 0,72 → d-5=0 0,72 v2 = 1,44 → d-6=1 0,44 × 2 = 0,88 → d-7=0

  (0,46) 10 = (0,0111010) 2

19

Conversão de +407,375 para ponto flutuante   identificar os campos S, expoente e mantissa   N = +/- M × B+/-E   N = 407,375

  S +407,375 convertendo para base 2: 110010111,011

20

110010111,011

  normalizando:

  0,1110010111011 × 29

0 , 1 1 1 0 0 1 0 1 1 1 0 1 1 anda para a esquerda 9 posições

1 1 0 0 1 0 1 1 1 , 0 1 1 anda para a esquerda 9 posições

21

  então: 0,1110010111011 × 29

  S 0

  E 0001001 +9   Fração ou mantissa

1110010111011

No formato: S expoente mantissa 1 bit 7 bits 24 bits 0 0001001 111001011101100000000000

22

  conversão de - 0,078125 (0,078125)10 (0,000101)2

  para notação científica   S 1 negativo

  mantissa já é fracionária   normalizando

0,000101 0,101 X 2-3

No formato: S expoente mantissa 1 bit 7 bits 24 bits 1 1000011 101000000000000000000000

23

Soma e Subtração   se expoentes iguais:

• soma ou subtração das mantissas •  neste caso, como visto em ponto fixo

  se expoentes diferentes: •  igualar expoentes

–  expoente resultante é o de maior valor

24

n1= +37, n2 = -9, somar utilizando formato ponto flutuante   (+37)10 (100101)2

  (100101)2 +(0,100101 X 26)2

  (-9)10 - (1001)2 -(0,1001 X 24)2

S expoente mantissa 1 bit 7 bits 24 bits 0 0000110 100101000000000000000000

S expoente mantissa 1 bit 7 bits 24 bits 1 0000100 100100000000000000000000

25

  (+37)10 (0,100101 X 26)2

  (-9)10 - (0,1001 X 24)2 - (0,001001 X 26)2

 soma-se as mantissas

S expoente mantissa 1 bit 7 bits 24 bits 0 0000110 100101000000000000000000

S expoente mantissa 1 bit 7 bits 24 bits 1 0000110 001001000000000000000000

26

  soma-se as mantissas (0,100101)2 - (0,001001)2 = (0,011100)2

  normaliza (0,011100)2 = (0,111000 X 2 -1)2

S expoente mantissa 1 bit 7 bits 24 bits 0 0000101 111000000000000000000000

27

  Trata-se de uma convenção para representação de números fracionários

  facilita a portabilidade de programas

  altamente utilizado em processadores modernos

28

  formatos: •  simples de 32 bits

– Expoentes de 8 bits

•  duplo de 64 bits – Expoentes 11 bits

  Precisão dupla aumenta a precisão das operações

  Ainda: precisão estendida •  para diminuir a chance de overflow •  aumentar a precisão

29

  formatos: •  simples de 32 bits

– Expoentes de 8 bits

•  duplo de 64 bits – Expoentes 11 bits

  Precisão dupla aumenta a precisão das operações

  Ainda uma precisão estendida •  para diminuir a chance de overflow •  aumentar a precisão