620 likes | 990 Views
Aritmética PARA COMPUTADORAS. ITCR – SSC I Semestre 2012. La semana anterior…. Infraestructura de Software Aspectos introductorios sobre Aritmética de Computadores. Prueba Corta #2.
E N D
Aritmética PARA COMPUTADORAS ITCR – SSC I Semestre 2012
La semana anterior… • Infraestructura de Software • Aspectos introductorios sobre Aritmética de Computadores
Prueba Corta #2 • 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. • Sistemas numéricos • Convertir a decimal los números binarios: 110001, 10111001 • Convertir a binariolos números decimales: 1463, 1022, y 333 • Convertir a base 16: 3191 (10), 210 (10), y 1011011 (2) • Mencione la(s) diferencia(s) entre la tecnología multi-core y aquellas de multiprocesamiento como HyperThreading, en el caso de en Intel.
Aritmética para Computadoras Conceptos, representación, operaciones aritméticas…
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)
Solo para recordar… Notación, notación expandida… • Escribir en notación expandida los números: • 2468 • 146.723 Ejemplo: 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 6 837.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
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:
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
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
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)
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.
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.
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).
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 NOTbit 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.
Complemento a Uno • Ejemplo: • Supongamos que tenemos que representar el número -9710Procedemos 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.
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).
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
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
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
Complemento a Dos • Ventajas de la representación en Complemento a dos • No posee doble representación del cero. • Permite operar aritméticamente.
Complemento a Dos • +3 = 00000011 • +2 = 00000010 • +1 = 00000001 • +0 = 00000000 • -1 = 11111111 • -2 = 11111110 • -3 = 11111101
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
Negación caso especial #2 • -128 = 10000000 • Negación de bits 01111111 • Suma 1 al LSB +1 • Resultado 10000000 • Tal que: -(-128) = -128
Rango de Números • 8 bits complemento a 2 • +127 = 01111111 = • -128 = 10000000 = • 16 bits complemento a 2
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
Representación de Enteros • Ejercicios: Representar los siguientesnúmerosbinarios con signo, utilizandocomplemento a uno y a dos: • -13 • + 15 • -19
Operaciones aritméticas Suma, Resta, División, Multiplicación
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
Suma Binaria • Suma binaria • La tabla de la adición binaria se representa : 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, Llevando 1 1 + 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.
Suma Binaria • Ejemplo :
Suma Binaria • Ejemplos 11011.01 101111 + 101.1101 100111 10001.0001+ 11111 1110101 ¿Los resultados son correctos?
Suma Binaria • Ejercicios Realizar las operaciones siguientes. • 100111 + 11101 • 1101.01 + 101.01 • 101001011001.1111 + 1111100.00011
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
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.
Sustracción Binaria Ejemplos: Observar que prestamos un 1 de la tercera columna debido a la diferencia de 0 – 1 en la segunda columna.
Sustracción Binaria • Ejercicios: Desarrollar las sustracciones: a) 1101 - 110 b) 111010.00100 - 1111.00001 c) 11101011 – 1011101
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.
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
Multiplicación Ejemplos: Ejercicios: Efectuar las multiplicaciones indicadas: a) 100111 * 101 b) 11.101 * 1.01
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:
División Binaria • Ejercicios: • Efectuar las divisiones siguientes: • 1111 ÷ 101 • b) 1011 ÷ 11
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á?
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
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