Вы находитесь на странице: 1из 52

ARQUITETURA E ORGANIZAO DE COMPUTADORES SISTEMAS DE NUMERAO: REPRESENTAO EM PONTO FLUTUANTE

Prof. Dr. Daniel Caetano 2012 - 1

Objetivos
Compreender o que notao em ponto flutuante Compreender a representao binria de ponto flutuante segundo os padres IEEE Compreender a representao do zero em ponto flutuante Conhecer a representao de caracteres Lembrete:
Lista de Exerccios 1!

Material de Estudo
Material Notas de Aula Apresentao Material Didtico Arquitetura e Organizao dos Computadores Acesso ao Material http://www.caetano.eng.br/aulas/aoc/ (Aula 5) http://www.caetano.eng.br/aulas/aoc/ (Aula 5) Biblioteca Virtual, pginas 289 a 292.

MOTIVAO

Motivao
Sabemos que a memria do computador no infinita... Assim, os nmeros so guardados com um nmero limitado de bits Isso significa que nmeros muito grandes, com muitas casas decimais, no podem ser guardados no computador Ser?

O QUE PONTO FLUTUANTE?

Notao em Ponto Flutuante


Como guardar esse nmero? 65340000000000000000000000000000 Pode ser reescrito assim:

6,534 * 10+31
O que significa * 10+31 ? Significa que tenho que mudar a vrgula de lugar para obter o nmero real No caso, preciso andar 31 casas direita

Notao em Ponto Flutuante


Como guardar esse nmero? 0,0000000000000000000000000000006534 Pode ser reescrito assim:

6,534 * 10-31
O que significa * 10-31 ? Significa que tenho que mudar a vrgula de lugar para obter o nmero real No caso, preciso andar 31 casas esquerda

Notao em Ponto Flutuante


Qual o nome dessa representao? 6,534 * 10+31 6,534 * 10-31

Notao cientfica ou... Notao em Ponto Flutuante Por que ponto flutuante? Por que a posio da vrgula muda (flutua) de acordo com o expoente da potncia de 10

Notao em Ponto Flutuante


comum especificar esses nmeros assim: 6,534 * 10+31 6,534E31 6,534 * 10-31 6,534E-31

Repare que essa representao tem 3 partes


6,534E-31 Quais so os nomes destas partes?

Notao em Ponto Flutuante


6,534E-31 Caracterstica Mantissa Expoente

Qualquer nmero pode ser escrito assim?

Notao em Ponto Flutuante


Vejamos alguns exemplos
Tradicional 0,234 Cientfica 2,34E-1 Caracterstica 2 34 Mantissa -1 Expoente

0,054334 1 10 100
1000 125 ... ...

5,4334E-2 1,0E0 1,0E1 1,0E2


1,0E3 1,25E2 1,25E56 1,25E-56

5 1 1 1
1 1 1 1

4334 0 0 0
0 25 25 25

-2 0 1 2
3 2 56 -56

PONTO FLUTUANTE EM BINRIO

Notao em Ponto Flutuante


Ser que isso funciona com binrios? 10110000000000000000000000000000b Pode ser reescrito assim:

1,011b * 2+31
O que significa * 2+31 ? Significa que tenho que mudar a vrgula de lugar para obter o nmero real No caso, andar 31 bits direita

Notao em Ponto Flutuante


Ser que isso funciona com binrios? 0,0000000000000000000000000000001011b Pode ser reescrito assim:

1,011b * 2-31
O que significa * 2-31 ? Significa que tenho que mudar a vrgula de lugar para obter o nmero real No caso, andar 31 bits esquerda

Notao em Ponto Flutuante


1,011b * 2+31 1,011b * 2-31 Os nomes permanecem os mesmos Caracterstica Mantissa Expoente

Notao em Ponto Flutuante


Vejamos alguns exemplos
Tradicional 100b Cientfica 1,00b * 22 Caracterstica 1b Mantissa 00b 2 Expoente

101b 11,101b 1b 0,1001b


... ...

1,01 * 22 1,1101b * 21 1,0b * 20 1,001b * 2-1


1,0101b * 256 1,0101b * 2-56

1b 1b 1b 1b
1b 1b

01b 1101b 0b 001b


0101b 0101b

2 1 0 -1
56 -56

O que tem de estranho a?

Notao em Ponto Flutuante


Vejamos alguns exemplos
Tradicional 100b 00b1b, Se 1b sempre 1,01 * 2 1b 01b no precisamos 1,1101b *2 1b 1101b 1,0b * 2 1b 0b guardar! 1,001b * 2 1b 001b 1,00b * 22
2 1
0 -1

Cientfica

Caracterstica

Mantissa 2

Expoente

101b 11,101b 1b 0,1001b


... ...

2 1 0 -1
56 -56

1,0101b * 256 1,0101b * 2-56

1b 1b

0101b 0101b

O que tem de estranho a?

Notao em Ponto Flutuante


Assumimos que a caracterstica sempre 1b
Tradicional 100b Cientfica 1,00b * 22 Mantissa 00b 2 Expoente

101b 11,101b 1b 0,1001b


... ...

1,01 * 22 1,1101b * 21 1,0b * 20 1,001b * 2-1


1,0101b * 256 1,0101b * 2-56

01b 1101b 0b 001b


0101b 0101b

2 1 0 -1
56 -56

Representao em Ponto Flutuante


Como representar estes nmeros na memria? Em ponto fixo, reservamos um bit para o sinal... E os demais bits para a magnitude
Bit Dgito Binrio 7 (Sinal) 0 6 1 5 1 4 0 3 0 2 0 1 0 0 1

+ ou Bit 7: Sinal

0 a 127 Bits 0 a 6: Magnitude

Representao em Ponto Flutuante


O princpio o mesmo, mas agora vamos reservar bits para vrias outras coisas
Sinal Sinal do Expoente Bit 6 Expoente Mantissa

Bit 7

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

Observe que ficaram poucos bits para cada indicao Expoente de -3 a +3 Mantissa de 0000b a 1111b Caracterstica -1b ou +1b

Representao em Ponto Flutuante


Vamos representar o nmero 2,25 nessa notao Primeiro vamos converter para binrio Parte inteira: 2 = 10b Parte fracionria: 0,25 = 0,01b Logo... 2,25 = 10,01b Em notao cientfica: 10,01b = 1,001b * 21

Representao em Ponto Flutuante


Bem, ento 2,25 = 1,001b * 21 Vamos dividir este nmero em partes
Sinal: 0 (positivo) Caracterstica: 1b Mantissa: 001b Sinal Expoente: 0 (positivo) Expoente: 1b

Agora... Na memria:
Sinal 0 Bit 7 Sinal do Expoente 0 Bit 6 Expoente 0 Bit 5 1 Bit 4 0 Bit 3 0 Bit 2 Mantissa 1 Bit 1 0 Bit 0

Representao em Ponto Flutuante


Bem, ento 2,25 = 1,001b * 21 Nunca remova Vamos dividir este nmero em partes

zeros esquerda Sinal: 0 (positivo) Caracterstica: 1b Mantissa: 001b na mantissa! Sinal Expoente: 0 (positivo) Expoente: 1b
Sinal do Expoente 0 Bit 6 Expoente 0 Bit 5 1 Bit 4 0 Bit 3 0 Bit 2 Mantissa 1 Bit 1 0 Bit 0

Agora... Na memria:
Sinal 0 Bit 7

NOTAO IEEE 754/2008

Representao IEEE 754/2008


Usar 8 bits didtico, mas muito limitado para a prtica
Sinal Sinal do Expoente Bit 6 Expoente Mantissa

Bit 7

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

IEEE define dois padres de nmeros de ponto flutuante:


Preciso Simples (32 bits) Preciso Dupla (64 bits)

Representao IEEE 754/2008


Preciso Simples (32 bits)
Sinal Sinal do Expoente Expoente Mantissa

Bit 31

Bit 30

Bit 29 ~ Bit 23

Bit 22 ~ Bit0

1 bit para o sinal do nmero 8 bits para o expoente (incluindo sinal) 23 bits para a mantissa

Representao IEEE 754/2008


Preciso Dupla (64 bits)
Sinal Sinal do Expoente Expoente Mantissa

Bit 63

Bit 62

Bit 61 ~ Bit 52

Bit 51 ~ Bit0

1 bit para o sinal do nmero 11 bits para o expoente (incluindo sinal) 52 bits para a mantissa

Representao IEEE 754/2008


Comparativo

Tipo
Simples

Bits de Sinal
1

Bits de Expoente
8

Bits de Mantissa
23

Dupla

11

52

Por que aumentar mais os bits de mantissa que os de expoente? PRECISO

Representao IEEE 754/2008


Com 11 bits de expoente, j possvel indicar 1024 casas binrias... dgito que no acaba mais!

Entretanto, no adianta ter 1 milho de bits de expoente e ter apenas 1 bit de mantissa, pois a mantissa que d detalhes do nmero...

Representao IEEE 754/2008


Veja, com 4 bits de expoente, como fica o nmero 1,001010101110011101101110b: Com 3 bits de mantissa:
1,0010000000000000b

Com 8 bits de mantissa:


1,0010101000000000b

Representao IEEE 754/2008


Nenhum bit de mantissa:
No caso extremo, se no tivssemos nenhum bit de mantissa, poderamos representar apenas potncias de 2, o que bem limitado
1, 2, 4, 8, 16, 32, 64...

Nenhum bit de expoente:


Por outro lado, se no tivermos nenhum bit de expoente, camos no caso da representao em ponto fixo, que est muito longe de ser intil!
Todos os nmeros inteiros!

Representao IEEE 754/2008


DETALHE MUITO IMPORTANTE
Nas representaes anteriores, Bit de Sinal:
0 positivo 1 negativo

Na notao IEEE, isso vale para o sinal do nmero... Mas no sinal do expoente, o bit de sinal invertido, ou seja:
0 negativo 1 positivo

Representao IEEE 754/2008


DETALHE MUITO IMPORTANTE U?! Por qu? At agora, Bit de Sinal: Para complicar a 0 positivo 1 negativo vida?
Na notao IEEE, isso vale para o sinal do nmero No sinal do expoente, o bit de sinal invertido, ou seja:
0 negativo 1 positivo

REPRESENTAO DO ZERO

Representao do Zero
Voltemos ao nosso caso com apenas 8 bits
Sinal Sinal do Expoente Bit 6 Expoente Mantissa

Bit 7

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

Zero seria 0,0b * 20


Sinal: 0 (positivo) Caracterstica: 0b Mantissa: 0b Sinal Expoente: 1 (positivo) Expoente: 0b

Como indicar caracterstica 0b !?!?!

Representao do Zero
IEEE determinou que se precisarmos indicar caracterstica 0b... ... Usaremos o expoente -0b ! Assim, o nmero ZERO pode ser escrito como
Sinal 0 Bit 7 Sinal do Expoente 0 Bit 6 Expoente 0 Bit 5 0 Bit 4 0 Bit 3 0 Bit 2 Mantissa 0 Bit 1 0 Bit 0

Note que o uso de bit de sinal invertido no expoente (0 negativo) permite que o valor 0 seja representado como tudo 0!

Representao do Zero
Expoente -0: notao normalizada
Caracterstica 1b

Expoente = -0: notao no-normalizada


Caracterstica 0b

CONTAS EM PONTO FLUTUANTE

Clculos em Ponto Flutuante


Uma srie de transformaes so necessrias... Basicamente, os elementos precisam ter o mesmo expoente para serem somados Complicado! Por isso a maioria dos computadores tem uma... FPU Floating Point Unit

REPRESENTAO DE CARACTERES

Representao de Caracteres
Vimos como representar nmeros... Mas como representar letras? Problema antigo: surgiu com a computao Tabela ASCII
American Standard for Computer Information Interchange

Cada um dos cdigos visuais de caracteres so mapeados para um nmero

Representao de Caracteres

Representao de Caracteres
Esta tabela define os caracteres de 0 a 127 Os caracteres de 128 a 255 so extras Cada pas implementou a sua extenso, para os seus acentos, chamada codepage Isso criou muita confuso e, ento, criaram os padres mundiais UNICODE Os tipos comuns so UTF-8, UTF-16 e UTF-32

Representao de Caracteres
UTF: Unicode Transformation Format
UTF-8: 256 caracteres UTF-16: 65536 caracteres UTF-32: 4 bilhes de caracteres

UTF-8 compatvel com ASCII


(Apenas os 128 primeiros caracteres do ASCII)

UTF-16 compatvel com UTF-8 UTF-32 compatvel com UTF-16

EXERCCIO

Exerccio
1. Represente o nmero 273,5234 segundo padro IEEE de 32 bits
2. Escreva a palavra Abacaxi como o computador a v, isto , usando os cdigos ASCII dos caracteres. Use a notao hexadecimal

CONCLUSES

Resumo
possvel representar nmeros muito grandes e muito pequenos com o uso de ponto flutuante O formato padro de representar ponto flutuante no computador o estabelecido pela IEEE 754/2008. Os caracteres tambm so representados como nmeros ... E existem vrias codificaes possveis
TAREFA
Lista 1!

Prxima Aula
Ok... Mas como o lugar onde estes nmeros ficam?
Como eles so escritos? Como eles so acessados?

PERGUNTAS?

BOM DESCANSO A TODOS!

Вам также может понравиться