Beruflich Dokumente
Kultur Dokumente
computadoras
Capítulo 8
Aritmética de la computadora
Unidad Banderas
De control
ALU
Registros Registros
Aritmética de la computadora
Arquitectura de computadoras
3
Representación de enteros
Solo tenemos 0 y 1 para representar todo
Números positivos almacenados en binario
– ejemplo. 43=00101011
No hay signo menos
No hay puntos
Aritmética de la computadora
Arquitectura de computadoras
4
Signo-Magnitud
El bit de la izquierda es el bit de signo
– 0 significa positivo
– 1 significa negativo
– +18 = 00010010
– -18 = 10010010
Problemas
– Se necesita considerar signo y magnitUd en la
aritmética
– Dos representaciones del cero (+0 y -0)
Aritmética de la computadora
Arquitectura de computadoras
5
Complemento a dos
+3 = 00000011
+2 = 00000010
+1 = 00000001
+0 = 00000000
-1 = 11111111
-2 = 11111110
-3 = 11111101
Aritmética de la computadora
Arquitectura de computadoras
6
Beneficios
Una representación del cero
La aritmética es fácil
Negar es no tan fácil
– 3 = 00000011
– Complemento booleano 11111100
– Agregar 1 al LSB 11111101
Aritmética de la computadora
Arquitectura de computadoras
7
Negación caso especial 1
0 = 00000000
Negación bit a bit 11111111
Agrega 1 al LSB +1
Resultado 1 00000000
Se ignora el overflow, tal:
- 0 = 0√
Aritmética de la computadora
Arquitectura de computadoras
8
Negación caso especial 2
-128 = 10000000
Negación de bits 01111111
Suma 1 al LSB +1
Resultado
10000000
Tal que: -(-128) = -128
Aritmética de la computadora
Arquitectura de computadoras
9
Rango de números
8 bits complemento a 2
– +127 = 01111111 = 27-1
– -128 = 10000000 = -27
16 bits complemento a 2
– +32767 = 011111111 11111111 = 215
- 1
– -32768 = 100000000 00000000 = -215
Aritmética de la computadora
Arquitectura de computadoras
10
Conversión entre longitudes
Números positivos con ceros a la izquierda
– +18 = 00010010
– +18 = 00000000 00010010
Aritmética de la computadora
Arquitectura de computadoras
11
Suma y resta
Suma binaria normal
El bit de signo monitorea el overflow
Aritmética de la computadora
Arquitectura de computadoras
12
Hardware para suma y resta
Registro B
Complementador
OF Sumador
Registro A
Aritmética de la computadora
Arquitectura de computadoras
13
Multiplicación
Compleja
Generación de productos parciales
– uno para cada dígito del multiplicador
Tener cuidado con donde ponemos cada
valor (en que columna)
Sumar productos parciales
Aritmética de la computadora
Arquitectura de computadoras
14
Ejemplo de multiplicación
Aritmética de la computadora
Arquitectura de computadoras
15
Diagrama de bloques para la
multiplicación binaria sin signo
Mn-1 ••• M0
Aritmética de la computadora
Arquitectura de computadoras
16
Ejemplo de la ejecución
C A Q M
0 0000 1101 1011 Valores iniciales
Aritmética de la computadora
Arquitectura de computadoras
17
Diagrama de flujo para la
multiplicación de binarios sin
signo
Inicio
C,A ← 0
M ← Multiplicando
Q ← Multiplicador
Cuenta ← n
No Si
¿Q0=1?
C,A ← A + M
Desplazar C, A, Q
Cuenta ← Cuenta -1
No Si
¿Cuenta=0?
Fin
Aritmética de la computadora
Arquitectura de computadoras
18
Multiplicando números negativos
¡Lo anterior no funciona!
Solución 1
– Convertir a positivo si se requiere
– Multiplica como se hizo anteriormente
– Si los signos fueron diferentes, negar el resultado
Solución 2
– El algoritmo de Booth
Aritmética de la computadora
Arquitectura de computadoras
19
Algoritmo de Booth
Inicio
A ← 0, Q-1 ←0
M ← Multiplicando
Q ← Multiplicador
Cuenta ← n
=10 =01
¿Q0,Q-1 ?
A ←A - M =11 A ←A + M
=00
Desplazamiento
Aritmético a
Derecha: A, Q, Q-1
Cuenta ← Cuenta -1
No Si
Fin
¿Cuenta=0?
Aritmética de la computadora
Arquitectura de computadoras
20
Ejemplo de la ejecución
A Q Q-1 M
0000 0011 0 0111 Valores iniciales
Segundo Ciclo
1110 0100 1 0111 Desplazamiento
Cuarto Ciclo
0001 0101 0 0111 (Producto en A, Q)
Desplazamiento
Aritmética de la computadora
Arquitectura de computadoras
21
División
Más compleja que la multiplicación
Los números negativos son más
complicados!
Se basa en la división larga
Aritmética de la computadora
Arquitectura de computadoras
22
División de números binarios sin
signo
00001101 Cociente
Divisor 1011 10010011 Dividendo
1011
Residuos 001110
1011
Parciales
001111
1011
Residuo
100
Aritmética de la computadora
Arquitectura de computadoras
23
Números reales
Números con fracciones
Podrían representrase en binario puro
– 1001.1010 = 24 + 20 +2-1 + 2-3 =9.625
Aritmética de la computadora
Arquitectura de computadoras
24
Punto flotante
Bit de signo
Exponente
sesgado Mantisa
Aritmética de la computadora
Arquitectura de computadoras
25
Ejemplos de punto flotante
8 bits 23 bits
Bit de signo
Aritmética de la computadora
Arquitectura de computadoras
26
Signos para Punto Flotante
La mantisa se guarda en complemento a 2
Los exponentes son sesgados, un valor fijo
o sesgo se resta a ese campo para conseguir
el exponente verdadero
– ejemplo. Sesgo =128
– Tenemos un campo exponente de 8 bits
– Rango de valores puros es de 0-255
– Le restamos 128 para obtener el valor correcto
– Rango -128 a +127
Aritmética de la computadora
Arquitectura de computadoras
27
Normalización
Los números PF usualmente están normalizados
El exponente se ajusta que el bit más significativo
de la mantisa es 1
Como siempre es 1 no se requiere almacenarlo
– La notación científica donde los números están
normalizados para tener un sólo dígito antes del punto
decimal
– Caso 3.123 x 103
Aritmética de la computadora
Arquitectura de computadoras
28
Rangos de PF
Para un número de 32 bits
– Exponente de 8 bits
– +/- 2256 ≈ 1.5 x 1077
Precisión
– El efecto de cambiar lsb (bit menos
significativo) de la mantisa
– Mantisa de 23 bits 2-23 ≈ 1.2 x 10-7
– Aproximadamente 6 posiciones decimales
Aritmética de la computadora
Arquitectura de computadoras
29
Números representables
Desbordamiento a Desbordamiento a
Cero negativo Cero positivo
Cero
ot nei ma dr obs e D
ovit a ge N
ot nei ma dr obs e D
oviti s o P
s or e mú N
s or e mú N
s oviti s o P
s ovit a ge N
s el bat nes er pe R
s el bat nes er pe R
Recta
-(1-2-24 )x2127 (1-2-24 )x2127 real
-0.5X2-128 0 0.5x2-128
Aritmética de la computadora
Arquitectura de computadoras
30
IEEE 754
Un estandar para el almacenamiento de
punto flotante
Formatos de 32 y 64 bits
Exponentes de 8 y 11 bits respectivamente
Formatos extendidos (mantisa y exponente)
para resultados intermedios
Aritmética de la computadora
Arquitectura de computadoras
31
Aritmética de PF +/-
Comprobar valores cero
Ajuste de mantisas
Suma o resta mantisas
Normalizar el resultado
Aritmética de la computadora
Arquitectura de computadoras
32
Aritmética de PF x/÷
Checasr si cualquiera de los operandos es cero
Sumar/restar exponentes
Multiplicar/dividir mantisas (checar signo)
Normalizar
Redondear
Todos los resultados intermedios deben estar en
un almacenamiento del doble de tamaño
Aritmética de la computadora
Arquitectura de computadoras
33
Multiplicación de punto flotante
Multiplicar
N N Sumar
¿X=0? ¿Y=0? exponentes
S S Restar
sesgo
z←0
¿Desbordamiento S Indicar
Exponente? desbordamiento
Retornar
¿Desbordamiento a S Indicar
Cero en exponente?
Desbordamiento a
Cero
N
Multiplicar
mantisas
Retornar
Normalizar
Redondear
Retornar
Aritmética de la computadora
Arquitectura de computadoras
34
División en punto flotante
Divdirr
N N Restar
¿X=0? ¿Y=0? exponentes
S S Sumar
sesgo
z←0 z←infinito
¿Desbordamiento en S Indicar
Exponente? desbordamiento
Retornar
¿Desbordamiento a S Indicar
Cero en exponente?
Desbordamiento a
Cero
N
Dividir
mantisas
Retornar
Normalizar
Redondear
Retornar
Aritmética de la computadora
Arquitectura de computadoras
35
Lecturas recomendadas
IEEE 754 en el web de la IEEE
Aritmética de la computadora
Arquitectura de computadoras
36
Aritmética de la computadora
Arquitectura de computadoras
37