aritmÉtica para computadoras itcr – ssc i semestre 2012
TRANSCRIPT
ARITMÉTICA PARA COMPUTADORASITCR – SSC
I Semestre 2012
2
La semana anterior…
Infraestructura de Software Aspectos introductorios sobre Aritmética
de Computadores
3
Prueba Corta #2
1. Mencione y explique brevemente los pasos (herramientas o aplicaciones) que interfieren en la generación de un archivo ejecutable, partiendo desde un programa implementado en lenguaje de alto nivel.
2. Sistemas numéricos1. Convertir a decimal los números binarios: 110001,
10111001
2. Convertir a binario los números decimales: 1463, 1022, y 333
3. Convertir a base 16: 3191 (10), 210 (10), y 1011011 (2)
3. Mencione la(s) diferencia(s) entre la tecnología multi-core y aquellas de multiprocesamiento como HyperThreading, en el caso de en Intel.
4
Conceptos, representación, operaciones aritméticas…
Aritmética para Computadoras
5
ARITMETICA PARA COMPUTADORAS: UNIDAD ARITMÉTICA Y LÓGICA
Objetivo Estudio de uno de los Componentes Clásicos de una
Computadora Unidad Aritmético Lógica (ALU)
ALU Hace los cálculos El resto de los elementos de la computadora están para
suministrar datos a la ALU UDC, Registros, Memoria, E/S
Maneja enteros Puede manejar números de punto flotante (reales) Puede ser una FPU separada (coprocesador matemático)
6
ALU Entradas y Salidas
7
Solo para recordar… Notación, notación expandida…
Escribir en notación expandida los números: 2468 146.723Ejemplo: Expresar el número 837.526 en notación
expandida. Solución: Haciendo uso de la forma general y la notación expandida obtenemos.
S2S1S0.S-1S-2 S-3
8 3 7. 5 2 6837.526= 8 * 102 + 3 * 101 + 7 * 100 + 5 * 10-1 + 2 * 10-2 + 6 * 10-
3
837.526= 800 + 30 +7 + 5/10 + 2/100 + 6/1000
8
Solo para recordar… Sistemas de numeración
Conjunto de símbolos usados para representar información numérica.
El número de símbolos de este conjunto depende de la base del sistema de numeración. Ejemplos:
Binario {0,1}
Octal {0,1,2,3,4,5,6,7}
Decimal {0,1,2,3,4,5,6,7,8,9}
Hexadecimal {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
9
Solo para recordar… Aritmética Binaria
No es más que aquella aritmética que se da en el sistema de numeración de base 2, y que es utilizada para construir los códigos del computador.
Operaciones aritméticas: Suma, Resta, Multiplicación y División
10
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 Representación de positivos y
negativos Signo-Magnitud Complemento a uno Complemento a dos
11
Signo-Magnitud
El bit de la izquierda es el bit de signo (por ejemplo, la IBM 7090 utilizó esta representación) 0 significa positivo 1 significa negativo Ejemplo
+18 = 00010010 -18 = 10010010
Problemas Se necesita considerar signo y magnitud en la
aritmética Dos representaciones del cero (+0 y -0)
12
Signo-Magnitud
Ejemplo El número -9710, que siendo negativo, llevará
como bit de signo un 1 Se realiza la conversión: el valor absoluto de -
9710 es |-9710| = 9710. Que en binario es: 11000012;
Se coloca todo junto, el número -9710 en binario con formato de Signo y Magnitud es: 111000012. Donde el 1 en el bit más significativo indica un número negativo, y 11000012 es el significando en valor absoluto.
13
Signo-Magnitud
Ejemplo Para el caso inverso, dado un número binario en
Signo y Magnitud, por ejemplo, 101101012, procedemos a: Analizar el bit más significativo, que siendo un 1 indica
que el número es negativo Convertir el significando a la base deseada, por
ejemplo, en decimal, tomando en cuenta que el valor obtenido está en valor absoluto y la magnitud real estará dada por el bit de signo obtenido antes: 01101012 = |5310|. Siendo que el bit de signo es 1, el número real es -5310. Si el bit de signo fuese 0, el número hubiese sido +5310.
14
Signo-Magnitud
Desventajas de la representación en Signo y Magnitud Es más complejo operar aritméticamente. Para
realizar una suma, por ejemplo, primero hay que determinar si los dos números tienen el mismo signo, y en caso de que sea así, realizar la suma de la parte significativa, pero en caso contrario, restar el mayor del menor y asignar el signo del mayor.
Posee doble representación del cero. Al representar en Signo y Magnitud, aparece el cero signado: 000000002 (+010) y 100000002 (-010).
15
Complemento a Uno
Otro enfoque sería representar números negativos usando el complemento a la base menos uno (común en computadoras más antiguas; el PDP-1 y la serie de UNIVAC 1100/2200)
En el caso de los números binarios, sería el complemento a uno y la forma del complemento a uno de un número binario es un NOT bit a bit aplicado al número, es decir, la inversión de unos por ceros y ceros por unos.
De esta forma, en la representación por Complemento a uno de un número signado de n-bits asignamos:
Un bit para representar el signo. Ese bit a menudo es el bit más significativo y, por convención: un 0 denota un número positivo, y un 1 denota un número negativo;
Los (n-1)-bits restantes para representar el significando que es la magnitud del número en valor absoluto para el caso de números positivos, o bien, en el complemento a uno del valor absoluto del número, en caso de ser negativo.
16
Complemento a Uno
Ejemplo: Supongamos que tenemos que representar el número -
9710 Procedemos a: Tomar nota del signo del número -9710, que siendo negativo,
llevará como bit de signo un 1; Como el signo es negativo, el número a continuación del bit
de signo, deberá expresarse en complemento a uno. Al realizar la conversión: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012, y el complemento a uno de 11000012 es C1(1100001) = 00111102;
Colocar todo junto, el número -9710 en binario con formato de Complemento a uno es: 100111102. Donde el 1 en el bit más significativo indica un número negativo, y 00111102 es el significando en complemento a uno del valor absoluto del número.
17
Complemento a Uno
Desventajas Posee doble representación del cero. Al
representar en Complemento a uno, aparece nuevamente el cero signado: 000000002 (+010) y 111111112 (-010).
18
Complemento a Dos
El sistema más empleado para representar números binarios con signo es el de complemento a 2.
Para considerar este último sistema es necesario tener en cuenta el complemento a 1, el cual se obtiene cambiando cada bit del número por su complemento.
El complemento a 2 de un número binario se obtiene tomando el complemento a 1 y sumándole una unidad al bit menos significativo
19
Complemento a Dos
Ejemplo: Para representar el número con signo +43 se agrega un bit 0 adelante del número binario puro, así:
43 = 101011+43= 0101011
20
Complemento a Dos
En cambio para obtener el número negativo –43 se encuentra el complemento a 2 del número positivo:
Número binario positivo: 0101011
Complemento a 1: 1010100 ___ +1
Complemento a 2: 1010101
Por lo que: 1010101= -43
21
Complemento a Dos
Ventajas de la representación en Complemento a dos No posee doble representación del cero. Permite operar aritméticamente.
22
Complemento a Dos
+3 = 00000011 +2 = 00000010 +1 = 00000001 +0 = 00000000 -1 = 11111111 -2 = 11111110 -3 = 11111101
23
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
24
Negación caso especial #2
-128 = 10000000 Negación de bits 01111111 Suma 1 al LSB +1 Resultado 10000000 Tal que: -(-128) = -128
25
Rango de Números
8 bits complemento a 2 +127 = 01111111 = -128 = 10000000 =
16 bits complemento a 2
26
Conversión entre Longitudes
Números positivos con ceros a la izquierda +18 = 00010010 +18 = 00000000 00010010
Números negativos con unos a la izquierda -18 = 10010010 -18 = 11111111 10010010
27
Representación de enteros de 4 bits
28
Representación de Enteros
Ejercicios:Representar los siguientes números binarios con signo, utilizando complemento a uno y a dos:a) -13b) + 15c) -19
29
Suma, Resta, División, Multiplicación
Operaciones aritméticas
30
Suma y Resta
Suma binaria normal El bit de signo monitorea el overflow Hacer el complemento a dos del
substraendo y súmalo al minuendo Ejemplo. a - b = a + (-b)
Sólo necesitamos circuitería para la suma y el complemento
31
Suma Binaria
Suma binaria La tabla de la adición binaria se representa :
0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 0, Llevando 11 + 1 + 1 = 1, Llevando 1
La adición es conmutativa, es decir 1 + 0=1 y 0 + 1=1. Observe que, la operación se realiza exactamente igual que
en el sistema de numeración decimal teniendo en cuenta que si se excede la base se lleva como acarreo una unidad en la siguiente cifra de orden superior.
En la tabla se indica que 1 + 1 =10 y debe entenderse 10 en base binaria (102) que es el equivalente del 2 en el sistema decimal.
32
Suma Binaria
Ejemplo :
• Sume la primera columna (la que está más a la derecha), en este caso: 1 + 1 = 0, con uno que se lleva. • El siguiente paso consiste en sumar: 1 + 1 + 0 = 0, con uno que se lleva.
• Sumamos 1 + 1 + 1 = 1, con 1 que se lleva.
• Luego 1 + 0= 1
33
Suma Binaria
Ejemplos
11011.01 101111+ 101.1101 100111 10001.0001 + 11111
1110101
¿Los resultados son correctos?
34
Suma Binaria
EjerciciosRealizar las operaciones siguientes.a) 100111 + 11101b) 1101.01 + 101.01c) 101001011001.1111 + 1111100.00011
35
Sustracción Binaria
Recordar que la resta no es conmutativa y por tanto deben distinguirse los elementos que intervienen en la misma. El minuendo es el elemento del cual se resta el sustraendo.
Al igual que en el sistema de numeración decimal se tiene en cuenta que si se excede la base se lleva en la siguiente cifra una unidad de orden superior
36
Sustracción Binaria
0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 – 1= 1, prestando un 1 de la siguiente columna
En esta última se toma un 1 del número de la izquierda, es decir de la columna de orden inmediato superior para conformar la operación: 10 – 1= 1.
Si el minuendo es negativo, la operación se convierte en una adición con el resultado negativo.
37
Sustracción Binaria
Ejemplos:
Observar que prestamos un 1 de la tercera columna debido a la diferencia de 0 – 1 en la segunda columna.
38
Sustracción Binaria
Ejercicios:
Desarrollar las sustracciones:
a) 1101 - 110b) 111010.00100 - 1111.00001 c) 11101011 – 1011101
39
Hardware para Suma y Resta
40
Multiplicación Binaria
En la multiplicación los elementos se llaman multiplicando y multiplicador, y que el operador es el signo (*). La multiplicación binaria es conmutativa, asociativa y distributiva con relación a la suma.
0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1
Para multiplicar números que tienen parte entera y parte fraccionaria se opera igualmente como en el sistema decimal. Donde, para colocar el punto binario se cuenta la cantidad de cifras fraccionarias tanto en el multiplicando como en el multiplicador, y esta cantidad se separa en el producto o resultado.
41
Multiplicación Binaria
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
42
Multiplicación
Ejemplos:
Ejercicios:Efectuar las multiplicaciones indicadas:
a) 100111 * 101 b) 11.101 * 1.01
43
Ejemplo de Multiplicación
50
División Binaria
En esta operación binaria los elementos son el dividendo y divisor. Como en la división decimal de enteros, un residuo es posible cuando un entero binario se divide por otro.
Procedimiento:
Se toma el mismo número de cifras en el dividendo que las que tiene el divisor, si no alcanza se toma una más.
Se resta, se baja la siguiente cifra y se sigue el mismo procedimiento
52
División Binaria
Ejercicios: Efectuar las divisiones siguientes:
a) 1111 ÷ 101
b) b) 1011 ÷ 11
54
División de números binarios sin signo
55
Números Reales
Números con fracciones Podrían representarse en binario puro
¿Dónde está el punto binario? ¿Fijo?
Muy limitado ¿Moviéndolo?
¿Cómo sabemos dónde está?
56
Punto Flotante
+/- .mantisa x El punto está fijo entre el bit de signo y el
cuerpo de la mantisa El exponente indica la posición del punto
57
Ejemplos de Punto Flotante
58
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
59
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
60
Rangos de PF
Para un número de 32 bits Exponente de 8 bits
Precisión El efecto de cambiar 1sb (bit menos
significativo) de la mantisa Aproximadamente 6 posiciones decimales
61
Números Representables
62
FIN