Representación de datos y aritmética básica en sistemas digitales DIGITAL II - ECA Departamento de Sistemas e Informática Escuela de Ingeniería Electrónica Rosa Corti 1
Sistemas de Numeración: Alfabeto: Símbolos utilizados Base: Cantidad de símbolos del alfabeto Sistemas Posicionales: La posición del dígito en la tira de símbolos da un peso a su valor 2
Sistemas de Numeración: Sistema binario {0,1} Sistema octal {0,1,2,3,4,5,6,7} Sistema hexadecimal { 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} 3
Representación decimal: Código BCD Dígito decimal Dígito decimal codificado en binario 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 4
Representación y operaciones básicas con enteros. 5
Representación de enteros Magnitud y signo Utilizada en la vida diaria Complementos Complemento a la base Complemento a la base menos 1 6
Complemento a la base menos 1 Dado un número N en base r con n dígitos, el complemento (r 1) de N se define como ( r n 1) N. Ejemplo en binario: N = (01101) 2 -N = (10010) 2 Ventaja: Implementación muy simple Inconveniente: Doble representación del cero Ejemplo en decimal: N = (31.479) 10 -N = (68.520) 10 7
Complemento a la base Dado un número N en base r con n dígitos, el complemento a r de N se define como r n N. Ejemplo en binario: Ejemplo en decimal: N = (01101) 2 -N = (10011) 2 N = (31.479) 10 -N = (68.521) 10 Es el complemento más utilizado en sistemas digitales 8
Representación del signo: Ejemplo en binario: N = (14) 10 = (0 00001110) 2 -N = (- 14) 10 = (1 11110010) 2 Utilizando complemento a 2. -N = (- 14) 10 = (1 11110001) 2 Utilizando complemento a 1. Ejemplo en decimal: N = (+ 258) 10 = ( 0000 0010 0101 1000 ) BCD -N = (- 258) 10 = ( 1001 0111 0100 0010 ) BCD, en C 10. 9
Suma en C2 Caso 1: A > 0 y B > 0 S = A + B Resultado correcto Cout A Sumador Binario S B Cin Sistema decimal Sistema binario A + 6 0 0000110 B +13 0 0001101 S = A + B +19 0 0 0010011 10
Suma en C2 Caso 2: A < 0 y B < 0 Resultado correcto S = (r n A) + ( r n B) = r n + r n ( A + B ) Sistema decimal Sistema binario A - 6 1 1111010 B -13 1 1110011 S = A + B -19 1 1 1101101 11
Suma en C2 Caso 3: A < 0 y B > 0 y A < B Resultado correcto S = (r n A) + B = r n + ( B - A ) Sistema decimal Sistema binario A - 6 1 1111010 B +13 0 0001101 S = A + B + 7 1 0 0000111 12
Suma en C2 Caso 4: A > 0 y B < 0 y A < B Resultado correcto S = A + (r n B) = r n - ( B - A ) Sistema decimal Sistema binario A + 6 0 0000110 B -13 1 1110011 S = A + B - 7 0 1 1111001 13
Sumador binario en C2 A B Cout Σ Sumador Binario Cin S Cuando sumamos números positivos y negativos utilizando complemento a r, se obtendrá el resultado correcto siempre, si se ignora r n. 14
Sobreflujo (Overflow) El sobreflujo ocurre cuando al sumar dos números de n bits, el resultado ocupa n + 1bits. Es un problema de la representación ligado al tamaño finito de los registros del sistema En general se detecta y se informa. 15
Bibliotecas Unificadas: Sumador binario Se disponen en distinto tamaño: 4, 8, 16 bits Son encadenables Sumadores de mayor tamaño Números sin signo o C2 Interpretación de los operandos 16
Suma Binaria Suma BCD Valor decimal Suma BCD de dos dígitos Se puede obtener utilizando un sumador binario? K Z 8 Z 4 Z 2 Z 1 C S 8 S 4 S 2 S 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 2 0 0 0 1 1 0 0 0 1 1 3 0 0 1 0 0 0 0 1 0 0 4 0 0 1 0 1 0 0 1 0 1 5 0 0 1 1 0 0 0 1 1 0 6 0 0 1 1 1 0 0 1 1 1 7 0 1 0 0 0 0 1 0 0 0 8 0 1 0 0 1 0 1 0 0 1 9 0 1 0 1 0 1 0 0 0 0 10 0 1 0 1 1 1 0 0 0 1 11 0 1 1 0 0 1 0 0 1 0 12 0 1 1 0 1 1 0 0 1 1 13 0 1 1 1 0 1 0 1 0 0 14 0 1 1 1 1 1 0 1 0 1 15 1 0 0 0 0 1 0 1 1 0 16 1 0 0 0 1 1 0 1 1 1 17 1 0 0 1 0 1 1 0 0 0 18 1 0 0 1 1 1 1 0 0 1 19 17
Suma en BCD Ejemplo 1: S = A + B, dónde A = (+ 184) y B = (+ 576) Acarreo BCD Suma Binaria Signo Centena Decena Unidad Suma Decimal 1 1 0000 0001 1000 0100 184 0000 0101 0111 0110 + 576 0000 0111 1 0000 1010 Corrección Suma BCD 0110 0110 0000 0111 0110 1 0000 760 18
Suma en BCD Ejemplo 2: S = A + B, dónde A = (- 184) y B = (- 576) Acarreo BCD Suma Binaria C 10 (A) = 9 816 C 10 (B) = 9 424 Signo Centena Decena Unidad Suma Decimal 1 1 1001 1000 0001 0110-184 1001 0100 0010 0100-576 1 1011 1100 0100 1010 Corrección 0110 0110 0110 Suma BCD 1 1001 1 0010 0100 1 0000-760 19
Suma en C1 Caso 1: A > 0 y B > 0 A B S = A + B Resultado correcto Cout Sumador Binario Cin S Sistema decimal Sistema binario A + 6 0 0000110 B +13 0 0001101 S = A + B +19 0 0 0010011 20
Suma en C1 Caso 2: A < 0 y B < 0 Resultado correcto S = (r n 1 A) + ( r n 1 B) = r n 1 + r n 1 ( A + B ) Sistema decimal Sistema binario A - 6 1 1111001 B -13 1 1110010 S = A + B -19 1 1 1101011 (- 20) 1 1 1101100 21
Suma en C1 Caso 3: A < 0 y B > 0 y A < B Resultado correcto S = (r n 1 A) + B = r n 1 + ( B A ) Sistema decimal Sistema binario A - 6 1 1111001 B +13 0 0001101 S = A + B + 7 1 0 0000110 ( + 6) 1 00000111 22
Suma en C1 Caso 4: A > 0 y B < 0 y A < B Resultado correcto S = A + (r n 1 B) = r n 1 ( B A ) Sistema decimal Sistema binario A + 6 0 0000110 B -13 1 1110010 S = A + B - 7 0 1 1111000 23
Sumador binario en C1 A B Cout Σ Sumador Binario Cin S Cuando sumamos números positivos y negativos utilizando complemento a r 1, se obtendrá el resultado correcto siempre, si se suma r n al dígito menos significativo. 24
Resta binaria R = A - B R = A + (- B) Se complementa el sustraendo ( C2 ó C1) Se obtiene a partir del bloque sumador 25
Bibliotecas Unificadas: Sumador/Restador binario Se disponen en distinto tamaño: 4, 8, 16 bits Son encadenables Operandos de mayor tamaño Números sin signo o C2 Interpretación de los operandos 26
Multiplicación y división binarias Se obtienen a partir de la suma y resta binarias, realizando los corrimientos correspondientes. Se opera con los valores absolutos y se obtiene el signo del resultado a partir de los signos de los operandos. ALU Operaciones aritméticas Operaciones lógicas Corrimientos y rotaciones 27
Representación de números reales. 28
Representación de números reales Se considera la coma o punto, fijo en cierta posición. Representación de punto fijo Se almacena la posición que ocupa la coma o punto. Representación de punto flotante 29
Representación en punto fijo El punto en el extremo izquierdo El número es una fracción El punto en el extremo derecho El número es un entero 30
Representación en punto flotante Mantisa: Número de punto fijo con signo N = m x r e Exponente: Representa la posición del punto La mantisa y el exponente se representan físicamente 31
Normalización en punto flotante Un número con punto flotante está normalizado si el dígito más significativo de la mantisa es distinto de cero. Ejemplo: Mantisa fraccionaria (magnitud y signo 8 bits), exponente (C2, 6 bits) Nro. binario + 0011,011 Número sin normalizar Número normalizado Mantisa Exponente Mantisa Exponente 0 0011011 0 00100 0 1101100 0 0010 Bit de signo El punto está a la derecha del bit de signo 32
Representación restringida a n bits: Parámetros Capacidad de representación Número máximo de tiras de símbolos diferentes que se pueden representar Ejemplo: Sistema con alfabeto binario restringido a 5 bits Número de representaciones posibles 2 5 = 32 33
Representación restringida a n bits: Parámetros Rango Intervalo entre los números mínimo y máximo de la representación Ejemplo: Sistema binario sin signo de punto fijo con 5 bits Intervalo representable [0, 31] 34
Representación restringida a n bits: Parámetros Resolución Diferencia entre dos representaciones sucesivas Ejemplo: Sistema con alfabeto binario y dos bits fraccionarios Resolución (0.01) 2 = (0,25) 10 35
Punto fijo versus punto flotante Sistema restringido a n bits Capacidad de representación 2 n en ambos Rango representable: Mayor en punto flotante Resolución: En punto fijo la resolución es constante, en punto flotante no. 36
Representación computacional de datos. 37
Representación computacional de datos Enteros o en punto fijo Reales en punto flotante Decimales Caracteres Código ASCII 38
Representación computacional de enteros 8 Bits 16 Bits 32 Bits BYTE SBYTE WORD SWORD DWORD SDWORD 39
Conversión entre distintas longitudes Ejemplo: + 18 = 00010010 (complemento a dos, 8 bits). + 18 = 0000000000010010 (complemento a dos, 16 bits). -18 = 11101110 (complemento a dos, 8 bits). - 18 = 1111111111101110 (complemento a dos, 16 bits). Debe completarse el formato usando el bit de signo 40
Representación computacional de decimales BCD Empaquetado BCD Desempaquetado Modo Carácter Nº BCD Empaquetado BCD Desempaquetado 12 0001 0010 0000 0001 0000 0010 623 0000 0110 0010 0011 0000 0110 0000 0010 0000 0011 910 0000 1001 0001 0000 0000 1001 0000 0001 0000 0000 Nº 12 623 910 ASCII 0011 0001 0011 0010 0011 0110 0011 0010 0011 0011 0011 1001 0011 0001 0011 0000 41
Representación computacional en punto flotante Mantisa normalizada Representada en magnitud y signo Se asume que es fraccionaria Exponente sesgado Se suma un valor fijo para que sea siempre positivo La base se conoce y por lo tanto no se representa 42
Estándar 754 de IEEE para punto flotante Los distintos formatos del esquema tienen la misma estructura La mantisa se normaliza y no se representa el bit más significativo SIGNIFICANTE El significante es un número entre 1 y 2. 43
Estándar 754 de IEEE para punto flotante 44
Estándar 754 de IEEE para punto flotante 45
Estándar 754 de IEEE: Ejemplos 46
Estándar 754 de IEEE para punto flotante Los bits disponibles en cada formato de la norma se reparten entre significante y exponente Existe un compromiso entre rango representable y resolución. 47
Suma y resta en punto flotante Se siguen los siguientes pasos: Verificación de operandos nulos Alineación de significantes Suma o resta de significantes Normalización y redondeo del resultado 48
Suma y resta en punto flotante La suma y la resta obligan a realizar un alineamiento de significantes Los exponentes deben ser iguales Se pierden dígitos significativos Se desplaza el significante del número más chico Ejemplo en decimal: S = 123 10 0 + 456 10-2 = 123 10 0 + 4,56 10 0 = 127,56 10 0 49
Estándar 754 de IEEE: Bits de guarda Z = X Y = 1,000 00 2 1 1,111 11 2 0 Sin bits de guarda: X = 1,000...00 x 2 1 - Y = 0,111...11 x 2 1 Z = 0,000...01 x 2 1 Con bits de guarda: X = 1,000...00 0000 x 2 1 - Y = 0,111...11 1000 x 2 1 Z = 0,000...00 1000 x 2 1 Z = 1, 000...00 x 2-22 Z = 1, 000...00 0000 x 2-23 Sirven para reducir los errores al operar 50
Estándar 754 de IEEE: Redondeo Redondeo a cero Trunca los bits de guarda Redondeo al más próximo Usada por defecto Redondeo hacia + Redondeo hacia - Se utilizan sólo si las necesidades de exactitud son muy altas 51
Multiplicación y división en punto flotante Se siguen los siguientes pasos: Verificación de operandos nulos Suma o resta de exponentes Multiplicación o división de significantes Normalización y redondeo del resultado 52