Prévia do material em texto
Arquitetura e Organização de Computadores: Padrão IEEE 754 para ponto flutuante Daniela Costa Terra – daniela.terra@ifmg.edu.br INTRODUÇÃO Esquemas de representação: • Sinal e Magnitude • Representação em Excesso • Complemento a Um • Complemento a Dois • Representação em Ponto Fixo • Representação em Ponto Flutuante 2 INTRODUÇÃO É preciso lembrar que computadores necessitam representar também • Números não-inteiros, isso é, com parte fracionária não-nula? • Ex.: 3,1415926535897932384626433832795028841971693993751058209749 44592307816406286 • Números muito grandes ou muito pequenos • Ex.: 0,00000000000000000000000000073 2537000000000000000000000000000 Nenhum dos esquemas de representação vistos até aqui são bons para esses casos 3 Daniela Carimbo Daniela Carimbo Daniela Carimbo INTRODUÇÃO Para esses números é preciso usar notação científica, que em Computação é chamada de Ponto Flutuante Abaixo exemplos de representação em notação científica decimal: • 0,00000000000000000000000000073dec ou 7,3 x 10 -28 ou 73x10-27 253700000000000000000000000000 dec ou 25,37 x 1029 ou 0,25 x 1031 4 fdfdf Ponto Fixo vs. Ponto Flutuante ● Na representação em ponto fixo, a vírgula não é representada, mas assumida em alguma posição dentro dos n bits usados para representar o número ● A vírgula é subentendida à direita p-ésimo bit, para algum p < n ● Observe os exemplos a seguir: • Ex1: n = 8 e p = 2 (10,25)10 = (1010,01)2 Representação em Ponto Fixo: (00101001)2 ● Ex2: n = 8 e p = 3 para o mesmo valor (10,25)10 = (1010,01)2 Representação em Ponto Fixo: (01010010)2 Daniela Carimbo Daniela Carimbo Ponto Fixo vs. Ponto Flutuante ● Na representação em Ponto Fixo as operações de soma e subtração podem ser realizadas como se a vírgula não existisse: • A vírgula sempre está no mesmo lugar • Os números podem ser operados como se fossem inteiros ● Números negativos em Ponto Fixo podem ser representados usando alguma dos esquemas já vistos: • Sinal e magnitude • Complemento a 2 Ponto Fixo vs. Ponto Flutuante ● Mas qual é o problema do Ponto Fixo? Ponto Fixo vs. Ponto Flutuante ● Mas qual é o problema do Ponto Fixo? • Se o ponto é fixo está na mesma posição em todos os números • Problema fundamental é definir a posição da vírgula • A escolha envolve um compromisso entre precisão e abrangência: • Precisão: o quão exata é a representação do número • Abrangência: o quão larga é a faixa de valores representáveis Ponto Fixo vs. Ponto Flutuante ● Observe as escolhas para a posição da vírgula! • Supondo 1 bit à direita da vírgula: n = 4 e p= 1 • Considerando apenas positivos, a faixa é: 0 até 7,5 • Apenas é possível que a parte fracionária seja igual a 0 ou igual a 0.5 • Sequer é possível representar o número 2,3 posições 3 2 1 0 Número representado: ex1 0 1 1 0 010,0 2 = 2,0 10 ex2 0 1 1 1 010,1 2 = 2,5 10 Daniela Carimbo Daniela Carimbo Ponto Fixo vs. Ponto Flutuante ● Observe as escolhas para a posição da vírgula! • Aumentando a precisão para 2 bits: n = 4 e p= 2 • A precisão melhorou, poderíamos aproximar 2,25 para 2,3 • Mas a abrangência piorou. Intervalo: 0.. 3,75 posições 3 2 1 0 Número representado: ex1 0 1 1 0 10,012 = 2,2510 ex2 0 1 1 0 10,10 2 = 2,5 10 ex3 0 1 1 1 10,11 2 = 2,75 10 Ponto Fixo vs. Ponto Flutuante ● A escolha da posição do ponto binário (vírgula) depende da aplicação ● Contudo a maioria dos computadores (desktop, servidores) são máquinas de propósito geral • Nenhuma escolha será boa para todos os casos! ● A solução é permitir à vírgula flutuar na representação: • para a esquerda para números muito grandes • para a direita para números muito pequenos ● Essa solução, como mencionada, é o Ponto Flutuante Padrão IEEE 754: ponto flutuante ● Padrão IEEE 754 é o esquema de representação em ponto flutuante mais importante para a maioria dos computadores ● Padrão internacional ISO/IEC/IEEE 60559:2011 ● Formatos: • Precisão simples: 32 bits (8 bits para o expoente) • Precisão dupla: 64 bits (11 bits para o expoente) • Precisão estendida: 80 bits ● Representa os números em notação científica normalizada, observe a seguir... Padrão IEEE 754: ponto flutuante Padrão IEEE 754: ponto flutuante O 1 à esquerda do ponto binário ficará subentendido , ou seja, não será armazenado! Padrão IEEE 754: ponto flutuante Padrão IEEE 754: precisão simples Padrão IEEE 754: precisão simples ou excesso de K . O K no padrão é também chamado de inclinação ou bias Padrão IEEE 754: precisão simples Padrão IEEE 754: precisão simples Padrão IEEE 754: precisão simples Padrão IEEE 754: precisão dupla Padrão IEEE 754: precisão dupla Padrão IEEE 754: precisão dupla Padrão IEEE 754: precisão dupla Padrão IEEE 754: precisão simples e dupla Os expoentes 000..0 e 111..1 são reservados! Padrão IEEE 754: qual número está representado? Padrão IEEE 754: qual número está representado? Exercícios de Fixação Exercícios de Fixação Exercícios de Fixação Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30