Sistemas de Computa - PowerPoint PPT Presentation

About This Presentation
Title:

Sistemas de Computa

Description:

Sistemas de Computa o Aritm tica Computacional Ponto Flutuante Material originalmente elaborados pelo Prof. Dr. David Fernandes david_at_dcc.ufam.edu.br – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 27
Provided by: lean140
Category:

less

Transcript and Presenter's Notes

Title: Sistemas de Computa


1
Sistemas de Computação
  • Aritmética Computacional
  • Ponto Flutuante

Material originalmente elaborados pelo Prof. Dr.
David Fernandes david_at_dcc.ufam.edu.br
Compilado a partir de slides preparados por
Prof. MSc. Leandro Galvão galvao_at_dcc.ufam.edu.br w
ww.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 lt F1 lt 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)
  • 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
  • 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
  • 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
Decimal Complemento de dois Notação excesso de N
4 -- 111
3 011 110
2 010 101
1 001 100
0 000 011
-1 111 010
-2 110 001
-3 101 000
-4 100 --
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)
  • 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
19
Ponto flutuante Zero
  • Como representar o zero em ponto flutuante?
  • Adota-se uma convenção.

0
0
20
Ponto flutuante Infinito
  • Notação especial para representar eventos
    incomuns
  • permite que os programas possam manipulá-los sem
    que sejam interrompidos.

8
-8
21
Ponto flutuante NaN Not a Number
  • É uma representação do resultado de operações
    inválidas, tais como
  • 0/0
  • 8 - 8
  • 8/8
  • 0 8
  • vx, x lt 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
32 48 0 64 _at_ 80 P 96 112 p
33 ! 49 1 65 A 81 Q 97 a 113 q
34 50 2 66 B 82 R 98 b 114 r
35 51 3 67 C 83 S 99 c 115 s
36 52 4 68 D 84 T 100 d 116 t
37 53 5 69 E 85 U 101 e 117 u
38 54 6 70 F 86 V 102 f 118 v
39 55 7 71 G 87 W 103 g 119 w
40 ( 56 8 72 H 88 X 104 h 120 x
41 ) 57 9 73 I 89 Y 105 i 121 y
42 58 74 J 90 Z 106 j 122 z
43 59 75 K 91 107 k 123
44 , 60 lt 76 L 92 \ 108 l 124
45 - 61 77 M 93 109 m 125
46 . 62 gt 78 N 94 110 n 126
47 / 63 ? 79 O 95 _ 111 o 127 DEL
24
UNICODE
  • O código ASCII possui a grande desvantagem de
    apenas permitir a representação de 28256
    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
Write a Comment
User Comments (0)
About PowerShow.com