- 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
- Construo de uma unidade aritmtica lgica
- Operaes em ponto flutuante
4. Nmeros com sinal e nmeros sem sinal 1 5. Nmeros com Sinal e
Nmeros sem Sinal
-
- 2543 (10) =2 10 3 +5 10 2 +4 10 1 +3 10 0 (10)
-
- 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
7. Representao de nmeros
- 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)
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 .
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.
- Formato: 1,xxxxxxxx 2 2 yyyy .
63. Representao em Ponto Flutuante
- 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.
-
- Subtrair 127 (peso) do exponente.
-
- Representao de 1: -1+127=-1+01111111=01111110.
- 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 10= -0,11 2= -0,11 x 2 0= -1,1 x 2 -1
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.