Prévia do material em texto
Organização e Arquitetura de Computadores Representações Numéricas REPRESENTAÇÃO EM PONTO FLUTUANTE Objetivos • Compreender o que é notação em ponto flutuante • Compreender a representação binária de ponto flutuante segundo os padrões IEEE • Compreender a representação do zero em ponto flutuante • Conhecer a representação de caracteres Motivação • Sabemos que a memória do computador não é infinita... • Assim, os números são guardados com um número limitado de bits • Isso significa que números muito grandes, com muitas casas decimais, não podem ser guardados no computador • Será? Motivação • Em alguns tipos de cálculo, a faixa de variação dos números envolvidos é muito grande. • Exemplo: ▪ 1) Massa do elétron - da ordem de 9 x 10-28 gramas ▪ 2) Massa do Sol - aproximadamente igual a 2 x 1033 gramas ▪ Faixa de variação: > 1060 ▪ Exemplo de representação (34 dígitos à esquerda do ponto decimal e 28 dígitos à direita do mesmo) 1) 0000000000000000000000000000000000.0000000000000000000000000009 2) 2000000000000000000000000000000000.0000000000000000000000000000 • Como representar esses números no computador? Motivação • Forma usual de representação de números reais: parte inteira, vírgula (ou ponto), parte fracionária. • Esta representação, embora cômoda para cálculos no papel, não é adequada para processamento no computador. • Exemplo: 45,724 Motivação • O número 45,724 pode ser expresso como: • 45,724 x 100 • 45724 x 10-3 • 0,45724 x 102 • É necessário o uso de um sistema de representação de números no qual a faixa de variação dos números seja independente do número de dígitos significativos dos números representados. Notação em Ponto Flutuante Notação em Ponto Flutuante Notação em Ponto Flutuante Notação em Ponto Flutuante Notação em Ponto Flutuante Notação em Ponto Flutuante Notação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Notação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Notação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Notação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Notação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Notação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO • Forma normalizada: usa um único dígito antes da vírgula, diferente de zero(*). • Na representação computacional de números em ponto flutuante, a representação normalizada é, em geral, melhor que a não-normalizada. ▪ Forma normalizada: só existe uma forma de representar um número. ▪ Forma não normalizada: um mesmo número pode ser representado de diversas maneiras. (*)Padrão IEEE 754 para números em ponto flutuante – significando (mantissa) normalizado – começa com um bit 1, seguido de um ponto (vírgula) binário e pelo resto do significando (número = ± 1,_ _ ... x 2exp ) Mantissa normalizada - começa com o ponto (vírgula) binário seguido por um bit 1 e pelo resto da mantissa (bit antes da vírgula igual a zero). Representação em Ponto Flutuante Exemplo • No sistema binário: ▪ 110101 = 110,101x23 = 1,10101x25 = 0,0110101x27 • Números armazenados em um computador, os expoentes serão também gravados na base dois. ▪ 110101 = 110,101 x (10)11 = 1,10101x(10)101 = 0,0110101x(10)111 • Representação normalizada - há apenas um “1” antes da vírgula ▪ Exemplo: • 1,10101x(10)101 2 em Binário 7 em Binário Representação em Ponto Flutuante Algumas definições • No número 1,10101x(10)101: ▪ 1,10101 = significando ▪ 10 = base ▪ 101 = expoente • OBS: ▪ A base binária não precisa ser explicitada (o computador usa sempre esta) ▪ O “1” antes da vírgula, na representação normalizada – se esta for adotada, também pode ficar implícito, economizando um bit (“bit escondido”) Representação em Ponto Flutuante Representação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Representação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO 11₂ = 3 1111₂ = 15 Representação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Representação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Representação em Ponto Flutuante PONTO FLUTUANTE EM BINÁRIO Representação IEEE 754/2008 • Até meados dos anos 1980, cada fabricante de computador tinha seu próprio formato para representar números em ponto flutuante. – Criação do Padrão 754 (IEEE 1985). • O Padrão IEEE 754 procurou uniformizar a maneira como as diferentes máquinas representam os números em ponto flutuante, bem como devem operá-los. • O padrão IEEE 754 para ponto (vírgula) flutuante é a representação mais comum para números reais em computadores de hoje, incluindo PC's compatíveis com Intel, Macintosh, e a maioria das plataformas Unix/Linux. Representação IEEE 754/2008 • O padrão IEEE 754 define três formatos: – Precisão simples (32 bits) – Precisão dupla (64 bits) – Precisão estendida (80 bits) • Os formatos de precisão simples e precisão dupla usam a base 2 para o significando e a notação em excesso para o expoente. Representação IEEE 754/2008 Representação IEEE 754/2008 Representação IEEE 754/2008 Tamanho de variáveis em Java Representação IEEE 754/2008 Representação IEEE 754/2008 Representação IEEE 754/2008 Representação IEEE 754/2008 Cálculos em Ponto Flutuante Representação de Caracteres Representação de Caracteres Representação de Caracteres Representação de Caracteres Representação de Caracteres Resolução 1) Represente o número 273,5234 segundo padrão IEEE de 32 bits 273 em binário = 100010001 0,5234 * 2 = 1,0468 0,0468 * 2 = 0,0936 0,0936 * 2 = 0,1872 0,1872 * 2 = 0,3744 0,3744 * 2 = 0,7488 0,7488 * 2 = 1,4976 0,4976 * 2 = 0,9952 0,9952 * 2 = 1,9904 0,9904 * 2 = 1,9808 0,9808 * 2 = 1,9616 0,9616 * 2 = 1,9232 0,9232 * 2 = 1,8464 0,8464 * 2 = 1,6928 0,6928 * 2 = 1,3856 1,3856 * 2 = 0,7712 273,5234 = 100010001,100001011111110 Normalizado = 1,00010001100001011111110 * 28 Sinal do Expoente = 0 (Positivo) Expoente = 8 = 1000 em binário Mantissa = 00010001100001011111110 0 0001000110000101111111000010000 Sinal do número Sinal do expoente Expoente em binário (Alinhado a direita) Parte fracionária do número normalizado Resolução 2) Palavra Abacaxi em Hexadecimal = 41-62-61-63-61-78-69 Conclusões