Aritmetica Computacional
-
Upload
elliando-dias -
Category
Documents
-
view
8.599 -
download
4
Transcript of Aritmetica Computacional
- 1. Aritmtica Computacional The complexity is in eye of the observer... As much as the object allows.
2. Introduo
- Humanos: sistema decimal.
- Computadores: sistema binrio.
- Como representar nmeros negativos e nmeros reais?
- Qual o maior nmero representvel numa palavra de computador?
- O que acontece quando o resultado maior do que a capacidade do computador?
3. Contedo
- Nmeros com sinal e nmeros sem sinal
- Adio e subtrao
- Operaes lgicas
- Construo de uma unidade aritmtica lgica
- Multiplicao
- Diviso
- Operaes em ponto flutuante
- Lendas e falhas
- Consideraes Finais
4. Nmeros com sinal e nmeros sem sinal 1 5. Nmeros com Sinal e Nmeros sem Sinal
- Base 10:
-
- 2543 (10) =2 10 3 +5 10 2 +4 10 1 +3 10 0 (10)
- Base 2:
-
- 1011 (2) =1 2 3 +0 2 2 +1 2 1 +1 2 0 =11 (10)
- Representao no Z80 (8 bits)
0 0 0 0 1 0 1 1 Bit Menos Significativo (LSB) Bit Mais Significativo (MSB) 6. Faixa de nmeros sem sinal para 8 bits: 0 a 256-1
- 0000 0000 (2)= 0 (10)
- 0000 0001 (2)= 1 (10)
- 0000 0010 (2)= 2 (10)
- ...
- 1111 1100 (2)= 252 (10)
- 1111 1101 (2)= 253 (10)
- 1111 1110 (2)= 254 (10)
- 1111 1111 (2)= 255 (10)
7. Representao de nmeros
- Nmeros reais: infinitos.
- No computador: finitos.
- Maioria: grande quantidade de zeros esquerda.
- Computador: pode lidar com nmeros at um certo tamanho.
- Overflow : tratado pelo sistema operacional.
- No computador: preciso representar nmeros com sinal.
-
- Soluo: usar 1 bit (sinal magnitude).
- Primeira tentativa: o bit mais significativos (MSB) usado para sinal.
-
- Problema: duas representaes para o zero
-
- Soluo mais usada: complemento a 2
8. Complemento a 2
- A regra baseia-se no fato de que a soma de um nmero com sua representao invertida deve ser -1:
9. Faixa de valores em complemento a 2 para 3 bits 0 -4 2 -2 1 3 -3 -1 111 101 011 001 010 110 100 000 10. Complemento a 2: regra prtica
- Considere X = 0000 1000, o complemento a 2 de X ser:
-X = 1111 1000 X = 1111 0111 1 + 11. Interface Hardware/Software
- Endereos: sempre positivos
- Os nmeros vo de 0 a 27FF (Z80), e no so nunca negativos.
- Em C: int e unsigned int.
12. Exerccios
- Converta -15 (10)para binrio com representao em sinal/magnitude (16 bits).
- Converta -15 (10)para binrio com representao em complemento a 2 (16 bits).
- Qual o nmero, em decimal, representado em complemento a 2 por 1010 0011 (2) ?
- Usando complemento a 2 qual a faixa de nmeros que podem ser representados com 8 bits?
13. Adio e Subtrao 2 14. Adio e Subtrao
- No computador: soma semelhante soma no sistema decimal.
- Soma: soma cada bit, mais o vai-um.
15. Adio e Subtrao (8 bits)
- 6 (10)= 0000 0110 (2)
- 7 (10)= 0000 0111 (2)
0000 0111 0000 0110 + 0000 1101 adio 0000 0111 0000 0110 - 0000 0001 subtrao 0000 0111 1111 1010 + 0000 0001 Subtrao com complemento a 2 16. Overflow
- Ocorre sempre que o resultado de uma operao no pode ser representado no hardware disponvel.
- Se um nmerofor negativo, e o outro positivo, no ocorrer overflow.
=0 >=0 =0 =0 no sim 1. Resto = Resto - Divisor 2b. Resto = Resto + DivisorDesloque o Quociente um 1 bit esquerdaQ0 = 0 59. Hardware da Diviso Divisor Deslocamento direita (64 bits) UAL de 64 bits Quociente Deslocamento esquerda (32 bits) Teste de controle 64 bits Resto Escrita 60. Exerccio
- Dividir 0000 0111 2por0010 2 .
- Valores iniciais:
-
- Quociente = 0000
-
- Divisor = 0010 0000
-
- Resto = 0000 0111
61. Operaes em Ponto Flutuante 7 62. Operaes em Ponto Flutuante
- Suporte a nmeros inteiros com e sem sinal.
- Suporte a nmeros fracionrios: 3,1414, 0,00001 etc.
- Notao cientfica: 1,34 x 10 3 .
- Nmeros normalizados: 1 dgito antes do ponto decimal.
- Nmeros binrios tambm podem ser normalizados.
- Ponto decimal / ponto binrio.
- Aritmtica com nmeros normalizados: aritmtica de ponto flutuante.
- Em C: float.
- Formato: 1,xxxxxxxx 2 2 yyyy .
63. Representao em Ponto Flutuante
- S sinal do nmero
- F mantissa, normalizada
- E expoente
- Tamanho: -2,010 38a 2,010 38 .
s expoente mantissa 32 bits 1 8 23 64. Overflow em Ponto Flutuante
- Ocorre quando o expoente muito grande pra ser representado pelos 8 bits.
- Underflow : O mdulo do expoente negativo muito grande.
- Necessrio nmeros maiores: preciso dupla. Na linguagem C: double.
- Representa nmeros entre -2,010 -308a 2,010 308 .
s expoente mantissa 64 bits 1 11 52 65. Padro IEEE 754
- Torna implcito o 1 esquerda do ponto binrio.
- Quando o expoente for zero, o hardware no considera o primeiro bit 1 implcito, para permitir a representao do nmero 0 em ponto flutuante.
66. Padro IEEE 754
- Deve permitir comparaes rpidas.
- Seria melhor: o menor coeficiente possvel valer 00000000, e o maior 11111111.
- Modificao:
-
- Subtrair 127 (peso) do exponente.
-
- Representao de 1: -1+127=-1+01111111=01111110.
-
- +1=+1+127=10000000 2 .
- Formato:
- Peso para preciso dupla: 1.023.
67. Exemplo 1
- Representar o nmero -0,75 10em ponto flutuante e preciso simples.
- Representar o nmero -0,75 10em ponto flutuante e dupla preciso.
68. Resposta da 1
- 1 afase: converter para binrio:
-
- 0,75 x 2 = 1,51
-
- 0,5 x 2= 1,01
-
- -0,75 10= -0,11 2= -0,11 x 2 0= -1,1 x 2 -1
- Em preciso simples:
- Resultado:
- Representao:
69. Exemplo
- Converter a palavra abaixo em ponto flutuante para nmero
70. Resposta 71. Lendas e Falhas 8 72. Lendas e Falhas
- Lenda: a adio em ponto flutuante associativa; ou seja,x+(y+z)=(x+y)+z .
- Lenda: assim como uma instruo de deslocamento esquerda pode substituir uma multiplicao inteira por uma diviso inteira por uma potncia de 2.
- Lenda: s os matemticos tericos se preocupam com a preciso das operaes em ponto flutuante.
73. Bibliografia
- Patterson, David A. e Hennessy, John L.Organizao e Projeto de Computadores: A Interface Hardware/Software . Ed. LTC,2. Ed., 2000, Rio de Janeiro.
74.