• Nenhum resultado encontrado

RepresentaçãoemPonto Flutuante

N/A
N/A
Protected

Academic year: 2022

Share "RepresentaçãoemPonto Flutuante"

Copied!
26
0
0

Texto

(1)

Fundamentos de Arquiteturas de Computadores

Representação em Ponto Flutuante

Profa. Débora Christina Muchaluat Saade

debora@midiacom.uff.br

Departamento de Ciência da Computação - UFF

http://www.midiacom.uff.br/debora/

(2)

Fundamentos de Arquiteturas de Computadores

Roteiro

ü

Notação Científica Normalizada

ü

Expoente e mantissa

ü

Padrão IEEE 754 Precisão Simples

ü

Padrão IEEE 754 Precisão Dupla

(3)

Fundamentos de Arquiteturas de Computadores

Números Fracionários

ü

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

Utiliza-se a vírgula na posição mais a direita para representar números inteiros.

ü

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

Exemplos:

3,141592565

2,71828

1,0 x 10

-9

3.155.760.000 = 3,15576 x 10

9

(4)

Fundamentos de Arquiteturas de Computadores

Notação Científica

ü

Utiliza-se a notação científica:

1,0 x 10

-9

3,15576 x 10

9

ü

Notação científica normalizada: somente um dígito diferente de zero antes da vírgula

0,1 x 10

-8

e 10,0 x 10

-11

=> não normalizadas

1,0 x 10

-9

e 1,0 x 10

-10

=> normalizadas

(5)

Fundamentos de Arquiteturas de Computadores

Números Fracionários

ü

Utiliza-se a notação científica:

1,0 x 10

-9

3,15576 x 10

9

ü

Notação científica normalizada: somente um dígito diferente de zero antes da vírgula

0,1 x 10

-8

e 10,0 x 10

-11

=> não normalizadas

1,0 x 10

-9

e 1,0 x 10

-10

=> normalizadas

ü

Vantagens de se usar esta notação:

Padrão para trocar dados

Simplifica aritmética, pois números ficam padronizados

Aumenta precisão dos números que podem ser representados porque não desperdiça dígitos.

Exemplo: 0,000012 x 10

-2

= 1,2 x 10

-7

(6)

Fundamentos de Arquiteturas de Computadores

Representação em Ponto Flutuante

ü

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,M)

2

x 2

E

– +/- => sinal

– M => mantissa

– E => expoente

(7)

Fundamentos de Arquiteturas de Computadores

Representação em Ponto Flutuante

ü

O que tem que ser representado ?

N = (+/-) 1,M x 2

E

ü

(+/-) Sinal (M) Mantissa (E) Expoente

ü

(S) Sinal => 1 bit

0 => positivo (+)

1 => negativo (-)

S expoente mantissa

(8)

Fundamentos de Arquiteturas de Computadores

Representação em Ponto Flutuante

ü

O que tem que ser representado ?

N = (+/-) 1,M x 2

E

ü

(+/-) Sinal (M) Mantissa (E) Expoente

ü

Questões:

Quantos bits utilizar para mantissa e expoente?

Qual a representação utilizada para mantissa e expoente?

sinal e magnitude, complemento a 2, excesso?

S expoente mantissa

(9)

9

Fundamentos de Arquiteturas de Computadores

Exemplo de Ponto Flutuante

ü N = (+/-)1,M x 2E

ü +407,37510 = ( )2 = (110010111,011)2=1,M x 2E= 1,10010111011 x 2+8

ü Parte inteira:

407/2=203, sobra 1, logo d0=1

203/2=101, sobra 1, logo d1=1

101/2=50, sobra 1, logo d2=1

50/2=25, sobra 0, logo d3=0

25/2=12, sobra 1, logo d4=1

12/2=6, sobra 0, logo d5=0

6/2=3, sobra 0, logo d6=0

3/2=1, sobra 1, logo d7=1

1/2=0, sobra 1, logo d8=1

ü Parte fracionária:

0,375x2 = 0,750 => d-1=0

0,75x2 = 1,5 => d-2=1

0,5x2 = 1,0 => d-3=1

(10)

Fundamentos de Arquiteturas de Computadores

Exemplo de Ponto Flutuante

ü N = (+/-)1,M x 2E

ü +407,37510 = ( )2 = (110010111,011)2=1,M x 2E= 1,10010111011 x 2+8

ü Sinal (positivo) = 0 (1bit)

ü E = +8, utilizando-se SM com 7 bits:

0001000

ü M=10010111011 (11 bits) completa com bits 0 até 24 bits

Sinal Expoente Mantissa

|---|

| 0 | 0001000 |100101110110000000000000|

|---|

1 bit 7 bits 24 bits

(11)

Fundamentos de Arquiteturas de Computadores

Exemplo de Ponto Flutuante

ü Dado o número em ponto flutuante, qual o decimal a ele associado ?

Exemplo: 04D00000 (expoente em SM)

ü N = 1,M x 2E

ü 0000 0100 1101 0000 0000 0000 0000 0000

ü S=0, E=+4, M=1101

ü N = +1,1101 x 24 = 11101 = +29,0

S expoente mantissa

(12)

Fundamentos de Arquiteturas de Computadores

Padrão IEEE 754 – Precisão Simples

ü Formato IEEE 754 para ponto flutuante

ü |31|30|29|28|27|26|25|24|23|22|21|...|0|

ü |---|

ü |S |Expoente | Mantissa |

ü |---|

ü 1 8 bits 23 bits

ü N=(+/-) 1,M x 2E

ü Precisão simples – 32 bits no total:

8 bits para expoente e 23 para mantissa

ü Expoente com representação em excesso de 127 (27 -1)

S expoente mantissa

(13)

Fundamentos de Arquiteturas de Computadores

Padrão IEEE 754 – Precisão Dupla

ü Formato IEEE 754 para ponto flutuante

ü |63|62|61|60|59|58|57|56|55|54|53|...|0|

ü |---|

ü |S |Expoente | Mantissa |

ü |---|

ü 1 11 bits 52 bits

ü N=(+/-) 1,M x 2E

ü Precisão dupla – 64 bits no total:

11 bits para expoente e 52 para mantissa

ü Expoente com representação em excesso de 1023 (210 -1)

S expoente mantissa

1 11 bits 52 bits

(14)

Fundamentos de Arquiteturas de Computadores

Decisões do IEEE 754

ü

Sinal mais à esquerda para facilitar a comparação com zero:

em C2, bit mais significativo é zero para números positivos e 1 para números negativos, então pode-se utilizar

instruções que comparem inteiros

ü

Expoente antes da mantissa porque números com maior expoente são maiores e a representação do inteiro é maior

Utiliza-se a notação excesso de N para o expoente para permitir comparação bit a bit.

O expoente mais negativo tem a representação 0000...000, e o

mais positivo tem a representação 1111...111

(15)

Fundamentos de Arquiteturas de Computadores

Exemplo de IEEE 754 Precisão Simples

ü N = (+/-)1,M x 2E

ü +407,37510 = ( )2 = (110010111,011)2=1,M x 2E= 1,10010111011 x 2+8

ü Sinal (positivo) = 0 (1bit)

ü E = +8, utilizando-se expoente com excesso de 127 com 8 bits, E=135:

10000111

ü M=10010111011 (11 bits) completa com bits 0 até 23 bits

Sinal Expoente Mantissa

|---|

| 0 | 10000111 |10010111011000000000000|

|---|

1 bit 8 bits 23 bits

ü 32 bits no total

S expoente mantissa

1 8 bits 23 bits

(16)

Fundamentos de Arquiteturas de Computadores

Exemplo de IEEE 754 Precisão Dupla

ü N = (+/-)1,M x 2E

ü +407,37510 = ( )2 = (110010111,011)2=1,M x 2E= 1,10010111011 x 2+8

ü Sinal (positivo) = 0 (1bit)

ü E = +8, utilizando-se expoente com excesso de 1023 com 11 bits, E=1031:

10000000111

ü M=10010111011 (11 bits) completa com bits 0 até 52 bits

Sinal Expoente Mantissa

|---|

| 0 | 10000000111 |1001011101100000000000000000000000000000000000000000|

|---|

1 bit 11 bits 52 bits

S expoente mantissa

(17)

Fundamentos de Arquiteturas de Computadores

Exemplo de IEEE 754 Precisão Dupla

ü N = (+/-)1,M x 2E

ü -0,7510 = - 0,112 = - 1,12x 2-1

ü Sinal (negativo) = 1 (1bit)

ü E = -1, utilizando-se excesso de 1023 com 11 bits, E=1022:

01111111110

ü M=1 (1 bit) completa com bits 0 até 52 bits

Sinal Expoente Mantissa

|---|

| 1 | 01111111110 |1000000000000000000000000000000000000000000000000000|

|---|

1 bit 11 bits 52 bits

ü 64 bits no total

S expoente mantissa

1 11 bits 52 bits

(18)

Fundamentos de Arquiteturas de Computadores

Exemplo de IEEE 754 Precisão Dupla

ü C0A00000C0A00000 representa que número em ponto flutuante?

ü 1100 0000 1010 0000 0000 0000 0000 0000 1100 0000 1010 0000 0000 0000 0000 0000

ü 64 bits

1 bit sinal

11 bits expoente

52 bits mantissa

ü Sinal (1 - negativo) = -1

ü Expoente (1000001010) = 1034 => 1034 – 1023 = +11

ü Mantisssa = 0000000000000000000011000000101000000000000000000000

ü N = -1,00000000000000000000110000001012 x 2+11

S expoente mantissa

1 11 bits 52 bits

(19)

19

Fundamentos de Arquiteturas de Computadores

Padrão IEEE 754 Casos Especiais

Sinal Expoente Mantissa Valor do número

0 0000....0000 0000....0000 +0

0 0000....0000 0000....0001

1111....1111 0,M x 2-126 0 0000....0001

1111....1110 XXXX....XXXX 1,XXXX....XXXX x 2(e-b) 0 1111....1111 0000....0000 + infinito

0 1111....1111 0000....0001

1111....1111 NaN

1 0000....0000 0000....0000 -0

1 0000....0000 0000....0001

1111....1111 -0,M x 2-126 1 0000....0001

1111....1110 XXXX....XXXX -1,XXXX....XXXX x 2(e-b) 1 1111....1111 0000....0000 - infinito

1 1111....1111 0000....0001

1111....1111 NaN

Soma em ponto flutuante

Somar 9,999x101 com 1,610x10-1.

Suponha que pode-se utilizar 4 dígitos para o número e 2 dígitos para expoente.

1. Alinha o ponto decimal do número que tem o menor expoente para igualar ao expoente do número que tem maior expoente.

1,610x10-1=0,1610x100=0,016x101(só pode usar 4 dígitos)

Porque alinha menor com maior ? Pode perder digitos, então melhor perder dígitos menos significativos. Maior chance de resultado ser normalizado.

2.

3. 1.101 x 2-6,

4. 1.001001 x 26

5. .000000000001101 x 26

6. 1.001001 x 26

7. ---

8. 1.001001000001101 x 26

9. Soma as mantissas

10.

11. 9,999

12. 0,016

(20)

Fundamentos de Arquiteturas de Computadores

Padrão IEEE 754 Casos Especiais

ü Casos especiais para IEEE 754 precisão simples:

E=0(e=-127) e M=0, S=0 ou 1, representa zero

E=0(e=-127) e M<>0, S=0 ou 1, Não normalizado, e=-126, complicado de usar

E=255(e=+128) e M=0, S=0 ou 1, (+/-)infinito, divisão por zero

E=255 (e=+128), M<>0, S=0 ou 1, NaN (Not a Number), 0/0, infinito - infinito

-126 =< expoente <=+127, número normalizado

ü Menor não-normalizado

0,000000000000000000000012x2-126=1,02x2-149

ü Maior não-normalizado

0,111111111111111111111112x2-126

ü Menor número normalizado:

1 para expoente e 0 para mantissa, 1,02x2-126 = 10-38

ü Maior número normalizado:

S expoente mantissa

1 8 bits 23 bits

(21)

Fundamentos de Arquiteturas de Computadores

Padrão IEEE 754 Casos Especiais

ü Casos especiais para IEEE 754 precisão dupla:

E=0(e=-1023) e M=0, S=0 ou 1, representa zero

E=0(e=-1023) e M<>0, S=0 ou 1, Não normalizado, e=-1022, complicado de usar

E=2047(e=+1024) e M=0, S=0 ou 1, (+/-)infinito, divisão por zero

E=2047 (e=+1024), M<>0, S=0 ou 1, NaN (Not a Number), 0/0, infinito - infinito

-1022 =< expoente <=+1023, número normalizado

ü Menor não-normalizado

0,0000000000000000…00000012x2-1022=1,02x2-1074

ü Maior não-normalizado

0,1111111111111111111…11112x2-1022

ü Menor número normalizado:

1 para expoente e 0 para mantissa, 1,02x2-1022

ü Maior número normalizado:

bits do expoente todos em 1, com exceção do bit menos significativo

logo e= 2046-1023=+1023, e mantissa toda com 1s, 1,1111..12x21023

S expoente mantissa

1 11 bits 52 bits

(22)

Fundamentos de Arquiteturas de Computadores

Soma em Ponto Flutuante em Decimal

ü

Soma em ponto flutuante

ü

Somar 9,999x10

1

com 1,610x10

-1

.

ü

Suponha que pode-se utilizar 4 dígitos para o número e 2 dígitos para expoente.

1.

Alinha o ponto decimal do número que tem o menor

expoente para igualar ao expoente do número que tem maior expoente.

1,610x10

-1

=0,1610x10

0

=0,016x10

1

(só pode usar 4 dígitos) Por que alinha menor com maior?

Pode perder dígitos, então melhor perder dígitos menos

(23)

Fundamentos de Arquiteturas de Computadores

Soma em Ponto Flutuante em Decimal

2.

Soma as mantissas 9,999

0,016 ---

10,015 x 10

1

3.

Coloca em notação científica normalizada

10,015x10

1

=1,0015x10

2

4.

Ajusta para número de dígitos possível com arredondamento

1,0015x10

2

=1,002x10

2

5.

Verifica se houve overflow ou underflow

Se o expoente maior ou menor do que é possível ser representado

(24)

Fundamentos de Arquiteturas de Computadores

Soma em Ponto Flutuante em Binário

ü

Assumir 4 dígitos para número e 2 dígitos para expoente

ü

Somar 0,510 com -0,437510

ü

Converte para a base 2.

0,5 = 0,1x2

0

= 1,000x2

-1

-0,4375 = -0,01110x2

0

= -1,110x2

-2

ü

Desloca a vírgula do número com menor expoente. O número de deslocamentos é igual a diferença entre os expoentes. Se os expoentes são iguais, não há deslocamento.

-1,110x2

-2

= -0,1110x2

-1

= -0,111x2

-1

ü

Soma os números

1,000x2

-1

+ (-0,111x2

-1

) = 0,001x2

-1

(25)

Fundamentos de Arquiteturas de Computadores

Soma em Ponto Flutuante em Binário

ü

Soma os números

1,000x2

-1

+(-0,111x2

-1

) = 0,001x2

-1

ü

Normaliza a soma se necessário

0,001x2

-1

= 0,010x2

-2

= 0,100x2

-3

= 1,000x2

-4

ü

Trunca resultado para número de bits que pode ser utilizado.

Formato de 4 dígitos para número e 2 dígitos para expoente

1,000x2-4

(26)

Fundamentos de Arquiteturas de Computadores

Resultado em IEEE 754 Precisão Simples

ü Para padrão IEEE 754 precisão simples (dupla), ocorre overflow se

expoente maior que 127 (1023) ou underflow se expoente menor que -126 (-1022) então será gerada uma exceção

ü IEEE 754 Precisão simples:

+1,000x2-4

Expoente => -4 + 127 = +123

00111101100000000000000000000000

3D800000

ü IEEE 754 Precisão dupla:

+1,000x2-4

Expoente => -4 + 1023 = +1019

00111111101100000000000000000000000000000000000000…0

3FB0000000000000

Referências

Documentos relacionados

Visando automatizar medidas de concentração de O 2 diluído na água, este pro- jeto desenvolveu um sistema composto de uma plataforma Arduino UNO conectado ao módulo

Destarte, todos os incisos do artigo 5º da Constituição Federal, que tratam do proces- so, condicionam toda a atuação do legislador na atividade de regulamentação e dos que

2) o cargo de direção, privativo de ocupante de cargo técnico ou científico. 276 - Cargo de Professor é o que tem como atribuição principal e permanente lecionar em qualquer grau

O MMC é calculado como o produto dos fatores elevados ao maior expoente que obtemos

pesquisas, publicações, ensino e extensão cultural na interface entre comunicação e educação do Departamento de Comunica- ções e Artes da Escola de Comunicações e Artes

Para atribuição das classificações geomecânicas RMR, Q-System e GSI, assim como os demais parâmetros mecânicos do maciço rochoso em estudo em conjunto com as

Pretendo, neste trabalho, mostrar a caminhada dos Kaiowá/ Guarani, em Mato Grosso do Sul, durante o período de 1985 a 1996, rumo à educação escolar diferenciada, à conquista de

Os animais adquiridos somente serão liberados para retirada física e entrega aos senhores compradores, após a assinatura dos contratos e respectiva Nota Promissória e