1 / 26

Sistemas de Computação

Sistemas de Computação. Aritmética Computacional Ponto Flutuante –. Material originalmente elaborados pelo Prof . Dr. David Fernandes david@dcc.ufam.edu.br. Compilado a partir de slides preparados por. Prof. MSc. Leandro Galvão galvao@dcc.ufam.edu.br www.dcc.ufam.edu.br/~dcc_oc.html.

Download Presentation

Sistemas de Computação

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas de Computação • Aritmética Computacional • Ponto Flutuante – Material originalmente elaborados pelo Prof. Dr. David Fernandes david@dcc.ufam.edu.br Compilado a partir de slides preparadospor Prof. MSc. Leandro Galvão galvao@dcc.ufam.edu.br www.dcc.ufam.edu.br/~dcc_oc.html

  2. Frações binárias • A parte fracionária (entre 0 e 1) de um número real em notação binária é representada por: • Portanto, seu valor em decimal (F) é dado por: • A expressão anterior pode ser reescrita como:

  3. Frações binárias • A expressão anterior sugere uma técnica de conversão. se multiplicarmos F por 2, teremos: • Da expressão acima, percebe-se que b-1 é a parte inteira do número (2 × F). • Portanto, podemos afirmar que (2 × F) = b-1 + F1, onde 0 < F1 < 1, e: • Para encontrar b-2, basta repetir o processo.

  4. Frações binárias • Assim, o processo de conversão da fração F de decimal para binário envolve repetidas multiplicações por 2. A cada passo, a parte fracionária do resultado do passo anterior é multiplicada por 2. • Os dígitos da parte inteira serão 0 ou 1 (da definição de bi), contribuindo para a formação da representação binária.

  5. Frações binárias • O processo anterior não é necessariamente exato: • Uma fração decimal com número finito de dígitos pode corresponder a uma fração binária com um número infinito de dígitos. • Nesses casos, o algoritmo de conversão é suspenso após um número pré-estabelecido de passos, dependendo da precisão desejada.

  6. Escolha da notação • Com a notação de complemento de 2, podemos representar a parte inteira de números reais. • Com a notação fracionária, podemos representar a parte fracionária do mesmo número real. • Limitações: • números muito grandes não podem ser representados • números muito pequenos não podem ser representados • dificuldades para manter precisão durante realização de operações aritméticas

  7. Ponto flutuante (Padrão IEEE 754) • Um número real pode ser representado no seguinte formato: (-1)s×m×Be • s – sinal • m – mantissa • B – base (implícita, não representada) • e – expoente

  8. Ponto flutuante (Padrão IEEE 754) 1 bit 8 bits 23 bits sinal expoente fração 1 bit 11 bits 52 bits sinal expoente fração • O formato de precisão simples (float) ocupa 32 bits. • O formato de precisão dupla (double) ocupa 64 bits.

  9. Ponto flutuante (Padrão IEEE 754):: Sinal • O bit mais à esquerda guarda o sinal do número: • bit = 0  número positivo • bit = 1número negativo

  10. Ponto flutuante (Padrão IEEE 754) :: Fração • A mantissa é representada na forma normalizada (base binária): • A mantissa é composta por: • Algarismo 1 • Ponto de separação • Fração

  11. Ponto flutuante (Padrão IEEE 754):: Fração 23 bits 11001100000000000000000 fração = 1,110011 fração • O algarismo 1 e o ponto de numeração não precisam ser armazenados, pois são os mesmos para todos os números reais representados. • Caso a fração possua menos bits que o esperado, zeros devem ser colocados à direita, pois não têm significância.

  12. Ponto flutuante (Padrão IEEE 754):: Fração 1 bit 15 bits 64 bits sinal expoente mantissa • Por razões históricas, o co-processador de ponto flutuante Intel não utiliza parte inteira implícita, ou seja, a parte inteira também é representada juntamente com a fração. • O formato de precisão estendida ocupa 80 bits.

  13. Ponto flutuante (Padrão IEEE 754):: Expoente • O expoente é representado na notação deslocada, ou excesso de N • Maior expoente representável: 2n-1 • Representado por: 11...11 • Menor expoente representável: -(2n-1 - 1) • Representado por: 00...00

  14. Ponto flutuante (Padrão IEEE 754):: Notação excesso de N

  15. Ponto flutuante (Padrão IEEE 754):: Notação deslocada • Representação do valor zero: 01...11. • Representação do valor um: 10...00. • Demais valores: somar ao zero (deslocamento).

  16. Ponto flutuante (Padrão IEEE 754) 1 bit 8 bits 23 bits 0 1000 0000 0000 0000 0000 0000 0000 000 sinal expoente fração • Exemplo: (10)bin = +1.0 × 21

  17. Ponto flutuante (Padrão IEEE 754) • Mais exemplos: fração em binário fração em decimal float expoente não sinalizado expoente decimal

  18. Ponto flutuante × Ponto fixo:: Faixa de números representados Inteiros representados -231 231 - 1 0 overflow negativo underflow negativo underflow positivo overflow positivo números representados números representados - 2-127 2-127 (1 - 2-24) × 2128 - (1 - 2-24) × 2128 0

  19. Ponto flutuante:: Zero 0 1 00000000 00000000 0000000000000000000000 0000000000000000000000 sinal sinal expoente expoente fração fração • Como representar o zero em ponto flutuante? • Adota-se uma convenção. + 0 – 0

  20. Ponto flutuante:: Infinito 0 1 11111111 11111111 0000000000000000000000 0000000000000000000000 sinal sinal expoente expoente fração fração • Notação especial para representar eventos incomuns: • permite que os programas possam manipulá-los sem que sejam interrompidos. +∞ -∞

  21. Ponto flutuante:: NaN – Not a Number x 11111111 xxx...xx ≠ 0 sinal expoente fração • É uma representação do resultado de operações inválidas, tais como: • 0/0 • ∞ - ∞ • ∞/∞ • 0 × ∞ • √x, x < 0

  22. Código ASCII (texto) • ASCII • American Standard Code for Information Interchange • A primeira versão foi criada em 1963 para normalizar a transmissão e armazenamento de texto. • Em 1967 foram incluídas as letras minúsculas no código, que essencialmente permaneceu inalterado até nossos dias.

  23. Código ASCII Código ASCII

  24. UNICODE • O código ASCII possui a grande desvantagem de apenas permitir a representação de 28=256 símbolos diferentes. • O código UNICODE pretende normalizar a codificação dos caracteres utilizados em todas as escritas do mundo. • Utiliza 16 bits para codificar cada caracter e encontra-se disponível nos sistemas informáticos mais recentes. • Mais informações em http://www.unicode.org

  25. Para saber mais... • William Stallings. Computer Organization and Architecture: Designing for Performance. 7th Ed. Prentice Hall, 2005. Cap. 09. • Patterson & Hennessy. Organização e Projeto de Computadores (Interface HW/SW). Cap. 3. • Sivarama P. Dandamudi. Guide to Assembly Language Programming in Linux. Springer, 2005. Cap. 22. • Kip R. Irvine. Assembly Language For Intel-Based Computers. 5th Edition. Prentice Hall, 2006. Cap. 17.

  26. Questões

More Related