Universidad Autnoma Gabriel Ren Moreno Sistemas Operativos MATERIA
Universidad Autónoma ¨Gabriel René Moreno¨ [ Sistemas Operativos ] MATERIA: PROGRAMACION ENSAMBLADOR INF 221 CONTENIDO: Representación de números enteros ING. VALENTIN VICTOR FLORES GUZMAN Correo : valentinfloresguzman@gmail. com cel : 721 - 14611 Präsentati on 1 Programacion
Representación de números enteros
Contenido : n Representar un número entero (con signo) de distintas formas n n Signo magnitud Complemento a 1 Complemento a 2 Realizar operaciones básicas con números enteros
MANEJO INTERNO DE DATOS n Enteros Parte alta Parte baja (bits o cifras más significactivos) (bits o cifras menos significactivos)
MANEJO INTERNO DE DATOS n n Enteros Sin Signo (magnitud no signada) Con signo (magnitud signada) ¿Cuántos posibles valores tendrá c/u? s = bit de signo
Suma Binaria Se efectúa exactamente en la misma forma que la suma de números decimales, siguiendo los mismos pasos generales. En la suma binaria solamente pueden ocurrir cuatro casos, los cuales se muestran en la siguiente tabla:
Suma Binaria
Resta Binaria
Multiplicación Binaria
Números negativos
Signo-magnitud
Signo-magnitud
Signo-magnitud
Signo-magnitud Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 decimal magnitud con signo
Complemento n n No es necesario distinguir entre la suma y la resta Dos tipos n n Complemento a la base 2 - 1 (complemento a 1) Complemento a la base 2 (complemento a 2)
Complemento a 1
RESTA BINARIA Complemento a uno -0 -1 -2 1111 1110 +0 0001 1101 +1 0010 +2 + -3 1100 0011 +3 0 100 = + 4 -4 1011 0100 +4 1 011 = - 4 -5 1010 0101 1001 -6 0110 1000 -7 0111 +5 +6 +7 Hay dos representaciones del cero (malo) -
RESTA BINARIA Suma y resta de números en complemento a uno 4 00100 -4 11011 +3 00011 + (-3) 11100 7 00111 -7 110111 1 Se suma el bit de acarreo 11000 4 00100 -4 11011 -3 11100 +3 00011 1 100000 -1 11110 1 00001 Ca 1 del resultado
Complemento a 1 n Suma y resta: Siempre se suma, y se suma TAMBIÉN el bit de acarreo (RECIRCULAR) n Signo resultante en la suma de números enteros: n n El de los operandos si son del mismo signo. Si el signo sale distinto que el de los operandos: overflow. El del mayor de los dos, si son de distinto signo
Complemento a 1 n Más casos de OVERFLOW de Como se puede ver en los dos casos OVERFLOW, el número que se interpreta como complemento a 1 es erróneo. En estos casos, se necesita 1 bit más
DESBORDAMIENTO (OVERFLOW) Condición de desbordamiento Sumar dos números positivos y obtener uno negativo o viceversa -1 -2 -3 1101 -4 -5 1111 1110 -1 +0 0001 0010 1100 0100 1010 0101 1001 -7 1000 -8 0110 0111 -3 +2 0011 1011 -6 -2 +1 0000 +3 +4 +5 +6 +7 5 + 3 = -8 ? ? ? 1101 -4 -5 1111 1110 +0 +1 0000 0001 0010 1100 1011 1010 -6 0011 +3 0100 +4 0101 1001 -7 +2 1000 -8 -7 - 2 = +7 ? ? ? 0110 0111 +7 +6 +5
Complemento a 1 n Extensión del signo n n positivos: 3 -> negativos: -3 -> 0112 = 0. . . 0112 1002 = 1. . . 1002
Representación de enteros Complemento a 2 Para calcular el complemento a 2 de un número, se invierten los "0"s por "1"s y los "1"s por "0"s y luego se le suma 1 al número. Ø Ejemplo de representación signo para enteros representados en 4 bits: Ø
Representación de enteros Complemento a 2 Cuando tenemos un número en binario en complemento a 2 y necesitamos saber su valor en decimal basta con aplicarle complemento a 2 de nuevo para obtener el correspondiente valor. Por ejemplo para saber qué número representa 1110 (en complemento a 2), invertimos los bits: 0001 y sumamos 1: 0001 + 1 = 0010 lo cual es 2, por lo tanto la combinación 1110 representa -2.
Complemento a 2
RESTA BINARIA Complemento a dos Hay una única representación para el cero (bueno) Hay un número negativo más Es menos intuitivo el obtener el negativo de un número
Resta de números en complemento a 2 Para realizar la resta se obtiene el complemento a 2 del substraendo y se le suma al minuendo. Por ejemplo para realizar la resta de 7 – 3 se suma 7 + (-3), es decir, se calcula el complemento a 2 de 3 y se la suma al 7. Ejemplos para números de 4 bits:
RESTA BINARIA Suma y resta de números en complemento a dos 4 00100 -4 11100 +3 00011 + (-3) 11101 7 00111 -7 111001 Se desprecia el bit de acarreo 4 00100 -4 11100 -3 11101 +3 00011 1 100001 -1 11111 Ca 2 del resultado La simplicidad de las operaciones aritméticas en la notación de complemento a dos hace que esta notación sea la más utilizada en sistemas digitales
Complemento a 2 Ej: Ca 2(-90)=Ca 1(-90)+1=10100101=10100110 +90 Ca 2= 0 -90 Ca 2= 1
Complemento a 2 (ejemplos)
DESBORDAMIENTO (OVERFLOW) Condición de desbordamiento Sumar dos números positivos y obtener uno negativo o viceversa -1 -2 -3 1101 -4 -5 1111 1110 -1 +0 0001 0010 1100 0100 1010 0101 1001 -7 1000 -8 0110 0111 -3 +2 0011 1011 -6 -2 +1 0000 +3 +4 +5 +6 +7 5 + 3 = -8 ? ? ? 1101 -4 -5 1111 1110 +0 +1 0000 0001 0010 1100 1011 1010 -6 0011 +3 0100 +4 0101 1001 -7 +2 1000 -8 -7 - 2 = +7 ? ? ? 0110 0111 +7 +6 +5
Suma de números en complemento a 2 Cuando se realiza la suma entre dos números representados en complemento a 2 se siguen usando las reglas de la suma binaria pero si hay acarreo este se descarta. El desbordamiento ocurre cuando al sumar dos números del mismo signo el resultado es del signo opuesto. Ejemplos de sumas con números en complemento a 2 para representación de 4 bits: Realizar los siguientes ejercicios : a) b) c) d) 4+3: 5 + (-7) : 5+4: (-4) + 4 :
Suma de números en complemento a 2
Comparación
Expansión de un número • Para convertir un número sin signo a un tipo de datos de mayor tamaño simplemente se añaden ceros en las posiciones más significativas. • Para expandir un número con signo se extiende el bit de signo, copiando ese bit (el más significativo) a las nuevas posiciones libres del nuevo tipo de datos extendido. Es decir, en el caso de un número positivo se llena con ceros a la izquierda y en caso de un número negativo se llena con unos.
Expansión de un número Ejemplo de expansión de números en complemento a 2 de 8 bits a 16 bits:
Truncado de un número Cuando se trunca un número se desechan bits más significativos lo cual puede variar su valor. Ejemplo de truncado de números en complemento a 2 de 8 bits a 4 bits:
Representación de números fraccionarios Se puede representar un número fraccionario en binario tomando en cuenta que cada posición a la derecha de la coma es una potencia de 2 -n Así el número en binario 0, 11 tiene como valores 1 x 2 -1 + 1 x 2 -2 =0, 5 + 0, 25 = 0, 75
Representación de números fraccionarios Los números cuyo valor no se describe con la fórmula k x 2 n no se pueden representar exactamente sino a través de aproximaciones. Por ejemplo para representar 1/5 =0, 2 la aproximación dependerá del número de bits disponibles. Con 4 bits disponibles para representar la parte fraccionaria se puede representar como 0, 0011=0, 1875. Una representación de punto fijo donde se destinen algunos bits para la parte entera y otros para la parte decimal no permite representar muchos números, por esta razón las máquinas actuales utilizan la representación en coma flotante, la cual es similar a la notación científica en decimal.
Representación de números fraccionarios La representación en coma flotante más utilizada es la definida en el estándar IEEE 754. Este estándar se desarrolló para facilitar la portabilidad de los programas de un procesador a otro. El estándar define un formato simple de 32 bits y uno doble de 64 bits. La base implícita es 2.
MANEJO INTERNO DE DATOS n Reales s = bit de signo n Representación de los números reales en binario, en octal y en hexadecimal. De base 10 a base m y de base n a base 10
Representación de números fraccionarios Para representar el número en binario 0, 001101 • Primero hay que llevarlo al formato normalizado el cual es: 1, 101 x 2 -3 • Los valores de los campos son: Bit de signo = 0 ya que el número es positivo Exponente= -3+127=124 = 01111100 en binario de 8 bits • Mantisa =101 como el campo es de 23 bits se guarda como 1010000000000 La representación en el formato es: s exponente mantisa 0 01111100 1010000000000
Representación de números fraccionarios Ejemplo de cálculo del valor decimal del número 0 x. C 1 B 28000 representado en el formato IEEE 754, precisión simple: Se lleva el número a binario: 1100000110110010100000000 se expresa en el formato: 1 10000011 0110010100000000 Signo: 1 lo cual indica que el número es negativo Exponente: 1000011=131 el exponente es 131 -127=4 Mantisa: 1, 01100101 x 24 = 10110, 0101 Valor en decimal: 16+4+2+0, 25+0, 0625=22, 3125 Valor en decimal del número: -22, 3125
n n Hacer operaciones aritméticas en binario Calcular el complemento a 1 y el complemento a 2 de un número binario Expresar números negativos en signomagnitud, complemento a 1 y complemento a 2 Hacer operaciones aritméticas en binario con números con signo
- Slides: 44