Tema 3: Sistemas de Numeración. Numeración Codificación Binaria Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid 1 Sistemas de Numeración. Codificación Binaria O B J E T I V O S Conocer los diferentes sistemas de numeración y los códigos alfanuméricos. Aplicar las operaciones aritméticas a los números binarios Conversión entre los diferentes sistemas de numeración. Expresar y sumar números en BCD. TEMA 3: SISTEMAS DE NUMERACIÓN. CODIFICACIÓN BINARIA 3.1 Sistemas de numeración 3.2 Operaciones aritméticas en binario 3.3 Código BCD. Aritmética BCD 3.4 Representación de números con signo 3.5 Representación de números en punto fijo y coma flotante 3 6 Códi 3.6 Códigos alfanuméricos lf éi Bibliografía Tema 3: - Fundamentos de Sistemas Digitales. T. L. FLOYD. 7ª Ed. (Prentice Hall, 2000). Cap. 2. - Introduction to Computer Hardware and Data Communications. P.-A. GOUPILLE. (Prentice Hall, 1993). Capítulos 2, 3 y 4. 2 1 SISTEMA DE NUMERACIÓN DECIMAL • El sistema de numeración decimal con sus diez dígitos, de 0 hasta 9, es un sistema en base diez. • La p posición de cada dígito g en un número decimal indica la magnitud de la cantidad reservada, y se le puede asignar un peso. Los pesos para los números enteros son potencias positivas de diez, que aumentan de derecha a izquierda, comenzando por 100 = 1. ... 105 104 103 102 101 100 • Para ara fracc fraccionarios, onar os, los pesos son potenc potencias as negat negativas vas de diez que aumentan de izquierda a derecha, comenzando por 10-1 . 102 101 100 , 10-1 10-2 10-3 ... Coma decimal Escuela Politécnica Superior 3 SISTEMA DE NUMERACIÓN DECIMAL • El valor de un número decimal es la suma de los dígitos después de haber multiplicado cada dígito por su peso. • Ejemplo: j p Expresar el número decimal 47 como suma de los valores de cada dígito. Solución. Como indican sus respectivas posiciones, el dígito 4 tiene un peso de 10, que es 101. El dígito 7 tiene un peso de 1, que corresponde a 100. 47 = ( 4 x 101 ) + ( 7 x 100 ) = ( 4 x 10 ) + ( 7 x 1 ) = 40 + 7 Escuela Politécnica Superior 4 2 SISTEMA DE NUMERACIÓN DECIMAL • Ejemplo: Expresar el número decimal 568,23 como suma de los valores de cada dígito. g Solución. El dígito 5 de la parte entera del número tiene un peso 100, es decir 102; el dígito 6 tiene un peso de 10, que corresponde a 101. El dígito 8 tiene un peso de 1, que es 100; el dígito 2 de la parte fraccionaria tiene un peso 0,1, es decir 10-1; y el dígito 3 tiene un peso de 0,01 q p que es 10-2. 568,23 = (5 x 102) + (6 x 101) + (8 x 100) + (2 x 10-1) + (3 x 10-2) = (5 x 100) + (6 x 10) + (8 x 1) + (2 x 0,1) + (3 x 0,01) = 500 + 60 + 8 + 0,2 + 0,03 Escuela Politécnica Superior 5 SISTEMA DE NUMERACIÓN BINARIO • El sistema de numeración binario solo tiene dos dígitos. El sistema binario con sus dos dígitos es un sistema en base dos. Los dígitos g binarios ((bits)) son 0 y 1. • La posición de un 1 o de un 0 en un número binario indica su peso, o valor dentro del número, así como la posición de un dígito decimal determina el valor de ese dígito. • Los pesos de un número binario están basados en las potencias de dos. Escuela Politécnica Superior 6 3 SISTEMA DE NUMERACIÓN BINARIO • Contar en Binario Por ejemplo, se requieren cuatro bits para contar desde 0 hasta 15. En g general, con n bits se p puede contar hasta n un número igual a 2 -1. Máximo número decimal = 2n-1 Así, con 5 bits (n = 5) se puede contar desde 0 hasta 31: 25 – 1 = 32 – 1 = 31 Con 6 bits (n = 6) se puede contar desde 0 hasta 63: 26 - 1 = 64 – 1 = 63 Escuela Politécnica Superior 7 SISTEMA DE NUMERACIÓN BINARIO Número decimal Número binario 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 1 9 1 0 0 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 Escuela Politécnica Superior 8 4 SISTEMA DE NUMERACIÓN BINARIO • Estructura de Pesos de los Números Binarios – Un número binario es un número con peso. El bit más a la derecha es el bit menos significativo (LSB, (LSB Least Significant Bit) en un número entero binario y tiene un peso de 20 = 1. – Los pesos de los respectivos bits crecen de derecha a izquierda según las potencias de dos. El bit más a la izquierda es el bit más significativo (MSB, Most Significant Bit), y su peso depende del tamaño del número binario. – Los números con parte fraccionaria también se pueden representar en binario, colocando bits a la derecha de la coma binaria. Escuela Politécnica Superior 9 SISTEMA DE NUMERACIÓN BINARIO • Estructura de Pesos de los Números Binarios – En un número binario con parte fraccionaria, el bit más a la izquierda es el MSB, MSB y tiene un peso de 2-11 = 0,5. 05 – Los pesos fraccionarios de los respectivos bits decrecen de izquierda a derecha según las potencias negativas de dos. – La estructura de pesos de un número binario es: 2n-1 .... 23 22 21 20 , 2-1 2-2 ... 2-n C Coma binaria bi i donde n es el número de bits a partir de la coma binaria. Escuela Politécnica Superior 10 5 SISTEMA DE NUMERACIÓN BINARIO • Estructura de Pesos de los Números Binarios Tabla de Pesos Binarios Potencias negativas de dos (número fraccionario) Potencias positivas de dos (número entero) 28 27 26 25 24 23 22 21 20 256 128 64 32 16 8 4 Escuela Politécnica Superior 2 1 2-1 2-2 2-3 2-4 2-5 2-6 1/2 1/4 1/8 1/16 1/32 1/64 0,5 0,25 0,125 0,0625 0,03125 0,015625 11 CONVERSIÓN BINARIO A DECIMAL • El valor decimal de cualquier número binario se puede determinar sumando los pesos de todos los bits que son 1,, y descartando los p pesos de todos los bits q que son 0. • Ejemplo: Convertir el número entero binario 1101101 a decimal. Solución. Se determina el peso de cada bit que está a 1, y luego se obtiene la suma de los pesos para obtener el número decimal: Peso: 26 25 24 23 22 21 20 Número binario: 1 1 0 1 1 0 1 1101101 = 26 + 25 + 23 + 22 + 20 = 64 + 32 + 8 + 4 + 1 = 109 Escuela Politécnica Superior 12 6 CONVERSIÓN BINARIO A DECIMAL • Ejemplo: Convertir el número binario fraccionario 0,1011 en decimal decimal. Solución. En primer lugar se determina el peso de cada bit que está a 1, y luego se suman los pesos para obtener la fracción decimal: Peso: 2-1 2-2 2-3 2-4 Número binario: 0 , 1 0 1 1 0,1011 = 2-1 + 2-3 + 2-4 = 0,5 + 0,125 + 0,0625 = 0,6875 Escuela Politécnica Superior 13 CONVERSIÓN DECIMAL A BINARIO • Método de la Suma de Pesos - Una forma de calcular el número binario equivalente a un número decimal dado es determinar el conjunto de pesos binarios, cuya p y suma es igual g al número decimal. - Ejemplo: Convertir los siguientes números decimales a formato binario: (a) 12 (b) 25 (c) 58 (d) 82 Solución. (a) 12 = 8 + 4 = 23 + 22 (b) 25 = 16 + 8 + 1 = 24 + 23 + 20 (c) 58 = 32 + 16 + 8 + 2 = 25 + 24 + 23 + 21 (d) 82 = 64 + 16 + 2 = 26 + 24 + 21 Escuela Politécnica Superior 1100 11001 111010 1010010 14 7 CONVERSIÓN DECIMAL A BINARIO • Método de la División Sucesiva por 2 - Un método sistemático para convertir a binario enteros decimales es el proceso de la división sucesiva por 2 . - Por ejemplo, para convertir a binario el número decimal 12, comenzamos dividiendo 12 entre 2. Luego cada cociente resultante se divide por 2 hasta que se obtiene un cociente cuya parte entera es 0. - Los restos generados en cada división forman el número binario. binario El primer resto es el bit menos significativo (LSB) y el último resto es el bit más significativo (MSB) del número binario. Escuela Politécnica Superior 15 CONVERSIÓN DECIMAL A BINARIO • Método de la División Sucesiva por 2 - Ejemplo: Resto 0 12 = 6 2 6 2 3 2 Parar cuando la parte entera del cociente sea 0 1 2 Escuela Politécnica Superior = 3 0 = 1 1 = 0 1 1 1 0 0 MSB LSB 16 8 CONVERSIÓN DE FRACCIONES DECIMALES A BINARIO • Método de la Suma de Pesos - El método de la suma de pesos se puede aplicar a números decimales fraccionarios. Por ejemplo: 0 625 = 0,5 0,625 0 5 + 0,125 0 125 = 2-1 + 2-3 = 0,101 0 101 Lo que indica que en la posición 2-1 hay un 1, en la posición 2-2 un 0 y en la posición 2-3 un 1. • Método de la Multiplicación Sucesiva por 2 - Los números decimales enteros se pueden convertir a por 2. números binarios mediante la división sucesiva p - Los números decimales fraccionarios pueden convertirse en números binarios mediante la multiplicación sucesiva por 2. Escuela Politécnica Superior 17 CONVERSIÓN DE FRACCIONES DECIMALES A BINARIO • Método de la Multiplicación Sucesiva por 2 - Por ejemplo, para convertir a binario el número decimal fraccionario 0,3125, empezamos multiplicando por 2, 2 y después d s és se s multiplica lti li cada d parte t fraccional f i l resultante del producto por 2, hasta que el producto fraccionario sea cero o hasta que se alcance el número deseado de posiciones decimales. - Los dígitos acarreados, o acarreos, generados por las multiplicaciones dan lugar al número binario. - El primer acarreo que se obtiene es el MSB, y el último es el LSB. Escuela Politécnica Superior 18 9 CONVERSIÓN DE FRACCIONES DECIMALES A BINARIO • Método de la Multiplicación Sucesiva por 2 - Ejemplo: MSB LSB Acarreo ,0101 0 3125 x 2 = 0,625 0,3125 0 625 0 0,625 x 2 = 1,25 1 0,25 x 2 = 0,50 0 Continuar hasta obtener posiciones el número de p decimales deseadas, o parar cuando la parte fraccional sea toda cero 0,50 x 2 = 1,00 Escuela Politécnica Superior 1 19 SISTEMA DE NUMERACIÓN HEXADECIMAL - El sistema de numeración hexadecimal es un sistema en base dieciséis, es decir, está formado por 16 dígitos y caracteres alfabéticos: 0 0-9 9yA A-F F. - La mayoría de los sistemas digitales procesan grupos de datos binarios que son múltiplos de cuatro bits, lo que hace al número hexadecimal muy adecuado, ya que cada dígito hexadecimal se representa mediante un número binario de 4 bits. bits Escuela Politécnica Superior 20 10 SISTEMA DE NUMERACIÓN HEXADECIMAL Decimal Binario Hexadecimal 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F Escuela Politécnica Superior 21 CONVERSIÓN BINARIOBINARIO-HEXADECIMAL - El procedimiento de conversión de un número binario a hexadecimal consiste en los siguientes pasos: (a) se parte el número binario en grupos de 4 bits, comenzando por el bit más a la derecha; y (b) se reemplaza cada grupo de 4 bits por su símbolo hexadecimal equivalente. Escuela Politécnica Superior 22 11 CONVERSIÓN BINARIOBINARIO-HEXADECIMAL • Ejemplo: Convertir a hexadecimal los siguientes números binarios: (a) 1100101001010111 (b) 111111000101101001 Solución. (a) (b) 1100 1010 0101 0111 C A 5 7 = CA5716 Escuela Politécnica Superior 0011 1111 0001 0110 1001 3 F 1 6 9 = 3F16916 23 CONVERSIÓN HEXADECIMALHEXADECIMAL-BINARIO - Para convertir un número hexadecimal en un número binario se realiza el proceso inverso, inverso reemplazando cada símbolo hexadecimal, por el grupo de cuatro bits adecuados. Escuela Politécnica Superior 24 12 CONVERSIÓN HEXADECIMALHEXADECIMAL-BINARIO • Ejemplo: Determinar los números binarios que correspondan a los siguientes números hexadecimales: (a) 10A416 (b) CF8E16 (c) 974216 Solución. (a) 1 0 A 4 (b) C 1 000010100100 Escuela Politécnica Superior F 8 E 1100 1111 1000 1110 (c) 9 7 4 2 1001 0111 0100 0010 25 CONVERSIÓN HEXADECIMALHEXADECIMAL-DECIMAL - Método 1: para encontrar el equivalente decimal de un número ú h hexadecimal, d i l primero, i convertir ti ell número ú hexadecimal a binario, y después, el binario a decimal. Escuela Politécnica Superior 26 13 CONVERSIÓN HEXADECIMALHEXADECIMAL-DECIMAL • Ejemplo: Convertir a decimal los siguientes números hexadecimales: ((a)) 1C16 ((b)) A8516 Solución. Primero, hay que convertir a binario el número hexadecimal, y después a decimal: (a) 1 C 1100 = 24 + 23 + 22 = 16 + 8 + 4 = 2810 0001 (b) A 8 5 1010 1000 0101 = 211 + 29 + 27 + 22 + 20 = 2048 + 512 + 128 + 4 + 1 = 269310 Escuela Politécnica Superior 27 CONVERSIÓN HEXADECIMALHEXADECIMAL-DECIMAL - Método 2: para convertir un número hexadecimal a su equivalente decimal, multiplicar el valor decimal de cada dígito hexadecimal por su peso, peso y luego realizar la suma de estos productos. - Los pesos de un número hexadecimal crecen según las potencias de 16 (de derecha a izquierda). - Para un número hexadecimal de 4 dígitos, dígitos los pesos son: 163 4096 Escuela Politécnica Superior 162 256 161 16 160 1 28 14 CONVERSIÓN HEXADECIMALHEXADECIMAL-DECIMAL • Ejemplo: Convertir a decimal los siguientes números hexadecimales: (a) E516 (b) B2F816 Solución. Las letras de la A hasta la F representan los números decimales de 10 hasta 15, respectivamente. (a) E516 = (E x 16) + (5 x 1) = (14 x 16) + (5 x 1) = 224 + 5 = 22910 (b) B2F816 = (B x 4096) + (2 x 256) + (F x 16) + (8 x 1) = (11 x 163) + (2 x 162) + (15 x 161) + (8 x 160) = (11 x 4096) + (2 x 256) + (15 x 16) + (8 x 1) = 45056 Escuela Politécnica Superior + 512 + 240 + 8 = 4581610 29 CONVERSIÓN DECIMALDECIMAL-HEXADECIMAL - La división sucesiva por 16 de un número decimal generará el número hexadecimal equivalente formado por restos de las divisiones. divisiones - El primer resto que se genera es el dígito menos significativo (LSD). - Cada división sucesiva por 16 dará un resto que será dígito del número hexadecimal equivalente. - E Este t procedimiento di i t es similar i il a la l división di i ió sucesiva i por 2 para la conversión decimal-binario. Escuela Politécnica Superior 30 15 CONVERSIÓN DECIMALDECIMAL-HEXADECIMAL • Ejemplo. Convertir a hexadecimal el número decimal 650 por el método de la división sucesiva por 16. Resto hexadecimal 650 16 40 16 2 16 , = 40,625 0,625 x 16 =10 = A = 2,5 0,5 x 16 = 8 = = 0,125 8 0,125 x 16 = 2 = 2 Parar cuando la parte entera del cociente sea 0 Escuela Politécnica Superior 2 8 A Dígito más significativo Número hexadecimal 31 Dígito menos significativo SISTEMA DE NUMERACIÓN OCTAL - El sistema de numeración octal está formado por ocho dígitos, que son: 0, 1, 2, 3, 4, 5, 6, 7. - Puesto que el sistema de numeración octal es un sistema en base ocho, cada posición sucesiva de dígito es una potencia superior de ocho, empezando por el dígito situado más a la derecha con 80. Escuela Politécnica Superior 32 16 CONVERSIÓN OCTAL OCTAL-DECIMAL - La evaluación de un número octal en términos de su equivalente decimal se consigue multiplicando cada dígito g por su p p peso y sumando los p productos. Por ejemplo, para 23748 se tiene: Peso : 83 82 81 80 Número Octal: 2 3 7 4 23748 = (2 x 83) + (3 x 82) + (7 x 81) + (4 x 80) = (2 x 512) + (3 x 64) + (7 x 8) + (4 x 1) = 1024 + 192 + 56 + 4 = 127610 Escuela Politécnica Superior 33 CONVERSIÓN DECIMALDECIMAL-OCTAL - Un método para convertir un número decimal en un número octal es el método de la división sucesiva por 8. - Cada división sucesiva por 8 da un resto que será un dígito del número octal equivalente. - El primer resto que se genera es el dígito menos significativo. - Por ejemplo, convertir a octal el número decimal 359. Escuela Politécnica Superior 34 17 CONVERSIÓN DECIMALDECIMAL-OCTAL 359 8 44 8 5 8 = 44,875 = 5,5 = 0,625 0,875 x 8 = 0,5 x 8 = 0,625 x 8 = 7 4 5 Parar cuando la parte entera del cociente sea 0 5 4 7 Dígito más significativo Número octal Dígito menos significativo Escuela Politécnica Superior 35 CONVERSIÓN OCTAL OCTAL-BINARIO - Puesto que cada dígito octal se puede representar mediante un número binario de 3 dígitos, para convertir un número octal en un número binario, simplemente se reemplaza cada dígito por el correspondiente grupo de tres bits. - Cada dígito octal se representa mediante tres bits, como se muestra en la siguiente tabla: Dígito octal Binario 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 Escuela Politécnica Superior 36 18 CONVERSIÓN OCTAL OCTAL-BINARIO • Ejemplo: Convertir a binario los siguientes números octales: octales (a) 138 (b) 258 (c) 1408 (d) 75268 Solución. (a) 1 3 001 011 (b) 2 5 010 101 (c) 1 4 0 001 100 000 (d) 7 5 2 6 111 101 010 110 Escuela Politécnica Superior 37 CONVERSIÓN BINARIOBINARIO-OCTAL - La conversión de un número binario a un número octal es el inverso de la conversión de octal a binario. - El procedimiento es el siguiente: se comienza por el grupo de tres bits más a la derecha y, moviéndose de derecha a izquierda, se convierte cada grupo de 3 bits en el dígito octal equivalente. - Si para el grupo más a la izquierda no hay disponibles tres bits, se añaden uno o dos ceros para completar el grupo. Estos E ceros no afectan f all valor l d l número del ú binario. Escuela Politécnica Superior 38 19 CONVERSIÓN BINARIOBINARIO-OCTAL • Ejemplo: Convertir a octal los siguientes números binarios: (a) 110101 (b) 101111001 (c) 100110011010 (d) 11010000100 Solución. (a) 110 101 6 (b) 5 5 = 658 (c) 100 110 011 010 4 101 111 6 3 (d) 7 001 1 = 5718 011 010 000 100 2 = 46328 3 2 0 Escuela Politécnica Superior 4 = 32048 39 RESUMEN. REPRESENTACIONES DE NATURALES NO BINARIAS 1. Propiedad de sistemas posicionales Si se tienen dos bases b1 y b2 tales que b1=(b2)k, los dígitos de la representación en la base b1 se pueden obtener agrupando los dígitos de la base b2 en grupos de longitud k y representando en base b1. 2. Objetivos de las bases: • Representaciones más legibles para el usuario. usuario • Representaciones de fácil conversión a binario. Escuela Politécnica Superior 40 20 RESUMEN. REPRESENTACIONES DE NATURALES NO BINARIAS • Representación Octal Sistema Posicional: • Base 8 • Conjunto de dígitos { 0, 1, 2, 3, 4, 5, 6, 7 } . Escuela Politécnica Superior 41 RESUMEN. REPRESENTACIONES DE NATURALES NO BINARIAS • Conversiones 1. Conversión ó binario octal • Las bases involucradas cumplen la condición de la propiedad: 8 = 23 • Las conversiones se pueden hacer agrupando los dígitos binarios de 3 en 3 3: - Comenzando por el bit menos significativo. - Completando a la izquierda, si fuera necesario. Escuela Politécnica Superior 42 21 RESUMEN. REPRESENTACIONES DE NATURALES NO BINARIAS • Conversiones 1. Conversión binario octal • Ejemplos: - 10110111002 = (se agrupan de 3 en 3) 001 011 011 1002 = (se pasa a octal) 13348 - 1078 = (se pasa a binario, 3 bits, dígito a dígito) 001 000 1112 = 10001112 2. Conversión decimal octal • Mismos algoritmos que decimal Escuela Politécnica Superior binario 43 RESUMEN. REPRESENTACIONES DE NATURALES NO BINARIAS • Representación Hexadecimal • Base B 16 Sistema Posicional: • Conjunto de dígitos {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} • Valores: - A16 = 1010 - B16 = 1110 - C16 = 1210 - D16 = 1310 - E16 = 1410 - F16 = 1510 . Escuela Politécnica Superior 44 22 RESUMEN. REPRESENTACIONES DE NATURALES NO BINARIAS • Conversiones 1. Conversión binario hexadecimal • Las bases involucradas cumplen la condición de la propiedad: 16 = 24 • Las conversiones se pueden hacer agrupando los dígitos binarios de 4 en 4: - Comenzando por el bit menos significativo. significativo - Completando a la izquierda, si fuera necesario. Escuela Politécnica Superior 45 RESUMEN. REPRESENTACIONES DE NATURALES NO BINARIAS • Conversiones 1. Conversión binario hexadecimal • Ejemplos: - 10110111002 = (se agrupa de 4 en 4) 0010 1101 11002 = (se pasa a hexadecimal) 2DC16 - 10C16 = (se pasa a binario, 4 bits, dígito a dígito) 0001 0000 11002 = 1000011002 2. Conversión decimal hexadecimal • Mismos algoritmos que decimal Escuela Politécnica Superior binario 46 23 RESUMEN. REPRESENTACIONES DE NATURALES NO BINARIAS • Conversiones 3. Conversión hexadecimal octal • Se suele utilizar el paso intermedio a binario. • Ejemplo: - 70A1F16 = (se pasa a binario) 0111 0000 1010 0001 11112 = (grupos de 3) 001 110 000 101 000 011 1112 = (paso a octal) 16050378 Escuela Politécnica Superior 47 OPERACIONES EN BINARIO PURO 1. Suma Binaria - Las cuatro reglas básicas para sumar dígitos binarios son: Tabla de la suma dígito a dígito 0 + 0 = 0 Suma 0 con acarreo 0 0 + 1 = 1 Suma 1 con acarreo 0 1 + 0 = 1 Suma 1 con acarreo 0 1 + 1 = 10 Suma 0 con acarreo 1 (El resultado es 210 = 102) (E Escuela Politécnica Superior Acarreo Acarreo 1 1 0 1 1 + 0 0 1 1 0 0 48 24 OPERACIONES EN BINARIO PURO 1. Suma Binaria - Cuando existe un acarreo igual a 1, se produce una situación en la que se deben sumar tres bits (un bit de cada uno de los números y un bit de acarreo). acarreo) Bits de acarreo 1 + 0 + 0 = 01 Suma 1 con acarreo 0 1 + 1 + 0 = 10 Suma 0 con acarreo 1 1 + 0 + 1 = 10 Suma 0 con acarreo 1 1 + 1 + 1 = 11 Suma 1 con acarreo 1 Escuela Politécnica Superior 49 OPERACIONES EN BINARIO PURO 1. Suma Binaria - Ejemplo: 1010 1010 1 1010 + 1011 + 1011 + 1011 1 01 1 1 1010 1010 + 1011 + 1011 + 1011 101 0101 10101 1 1010 - Ejemplos: • 1 + 1 + 1 + 1 = 100 2 2 2 2 2 • 112 + 12 + 1012 + 102 + 1102 = 100012 Escuela Politécnica Superior 50 25 OPERACIONES EN BINARIO PURO 1. Suma Binaria - Ejemplo: Sumar los siguientes números binarios: (a) 11 + 11 (b) 100 + 10 (c) 111 + 11 (d) 110 + 100 Solución. La suma decimal equivalente se muestra también como referencia. (a) 11 3 + 11 + 3 110 6 (b) 100 + 10 110 4 +2 6 (c) 111 7 + 11 + 3 1010 10 (d) 110 6 + 100 + 4 1010 10 Escuela Politécnica Superior 51 OPERACIONES EN BINARIO PURO 2. Resta Binaria - Las cuatro reglas básicas para restar números binarios son: Tabla de la resta dígito a dígito 0 - 0 = 0 0 - 1 = 1 (con acarreo negativo de 1, el resultado es 210 – 110 = 102 – 12) 1 - 0 = 1 1 - 1 = 0 Escuela Politécnica Superior 52 26 OPERACIONES EN BINARIO PURO 2. Resta Binaria • Ejemplo: Realizar las siguientes sustracciones binarias: ( ) 11 - 01 (b) 11 - 10 (a) Solución. (a) 11 3 - 01 - 1 10 2 (b) 11 - 10 01 3 -2 1 En este ejemplo no se han generado acarreos negativos. El número binario 01 es el mismo que 1. Escuela Politécnica Superior 53 OPERACIONES EN BINARIO PURO 2. Resta Binaria • Ejemplo: Restar 011 de 101. Solución. 101 5 - 011 -3 010 2 En este ejemplo es necesario un acarreo negativo. Comenzando por la columna de la derecha, se tiene: Columna izquierda: cuando se acarrea un 1, queda 0, luego 0-0 0110 1 - 011 010 Escuela Politécnica Superior Columna central: Acarreo negativo de 1 de la columna siguiente que da lugar a 10 en esta columna, luego 10-1=1 Columna derecha: 1 - 1 = 0 54 27 OPERACIONES EN BINARIO PURO 2. Resta Binaria - Ejemplo: 1011 - 1011 101 - 1011 101 0 - 10 101 110 1011 1011 - 101 - 1101 1 110 0110 - Ejemplos: • 10000 – 1111 = 1 • 11 - 111 Escuela Politécnica Superior 55 OPERACIONES EN BINARIO PURO 3. Multiplicación Binaria - Las cuatro reglas básicas de la multiplicación de bits son las siguientes: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1 - Algoritmo: la multiplicación con números binarios se realiza de la misma forma que con números decimales. Escuela Politécnica Superior 56 28 OPERACIONES EN BINARIO PURO 3. Multiplicación Binaria 3.1. Multiplicación directa de naturales en binario • Mismo algoritmo que en decimal. decimal • Ventaja: facilidad de cálculo. x * 12 = x ∀ x x * 02 = 0 ∀ x Escuela Politécnica Superior 57 OPERACIONES EN BINARIO PURO 3. Multiplicación Binaria 3.1. Multiplicación directa de naturales en binario - Ejemplo: 1000 x 1010 0000 Escuela Politécnica Superior 1000 x 1010 1000 x 1010 0000 1000 0000 1000 0000 1000 x 1010 0000 1000 0000 1000 1000 x 1010 0000 1000 0000 1000 1010000 58 29 OPERACIONES EN BINARIO PURO 3. Multiplicación Binaria 3.1. Multiplicación directa de naturales en binario • Ejemplo: Ej mpl : Realizar R liz las l s siguientes si ui nt s multiplicaciones multiplic ci n s binarias: bin i s: (a) 11 x 11 (b) 101 x 111 Solución. (a) Productos Parciales 11 3 x 11 x 3 11 9 + 11 1001 (b) Productos Parciales Escuela Politécnica Superior 111 x 101 111 000 + 111 100011 7 x 5 35 59 OPERACIONES EN BINARIO PURO 3. Multiplicación Binaria 3.1. Multiplicación directa de naturales en binario - Ejemplo: Ej l • 10112 * 1112 = 10011012 3.2. Reducción de producto a sumas reiteradas x * y = ∑i =1 x y Escuela Politécnica Superior ∀x, y 60 30 OPERACIONES EN BINARIO PURO 4. División Binaria 4.1. División directa de naturales en binario - Algoritmo: Al it mismo i algoritmo l it que en d decimal. i l - Ejemplo: 1100 100 100 1 110 0 100 100 11 0100 1100 100 100 1 0100 1100 100 100 11 0100 100 Escuela Politécnica Superior 000 61 OPERACIONES EN BINARIO PURO 4. División Binaria 4.1. División directa de naturales en binario • Ejemplo: Ej l Realizar R li l siguientes las i i t divisiones di i i bi binarias: i (a) 110 ÷ 11 Solución. (a) 10 2 11)110 3)6 11 6 000 0 Escuela Politécnica Superior (b) 110 ÷ 10 (b) 11 10)110 10 10 10 00 3 2)6 6 0 62 31 OPERACIONES EN BINARIO PURO 4. División Binaria 4.1. División directa de naturales en binario - Ejemplo: Ej l • 11011002 ÷ 1002 = 110112 con resto 0 4.2. Reducción de división a restas reiteradas Escuela Politécnica Superior 63 CARACTERÍSTICAS DE ENTEROS EN BINARIO PURO 11... 111 11... 110 11 11... 101 •Anomalías en la resta: resultados erróneos • 310 - 710 11 111 00... 00... 00... 00... 011 010 001 000 2n-2 0 123 Escuela Politécnica Superior 100 2n-3 2n-1 64 32 REDUCCIÓN DE OPERACIONES, RESTAS A SUMAS • No es necesario realizar restas. • Uso del opuesto: p ∀x ∃opuesto(x) = -x x - x = 0 y x - y = x + opuesto(y) ∀ x, y • El tamaño utilizado para representar números: - Observación sobre el tamaño de almacenamiento. - Acarreo y desbordamiento. Escuela Politécnica Superior 65 COMPLEMENTO A 1 Y COMPLEMENTO A 2 DE LOS NÚMEROS BINARIOS • El complemento a 1 y el complemento a 2 de un número binario son importantes porque permiten la representación de números negativos. • La aritmética en complemento a 2 se usa comúnmente en las computadoras para manipular los números negativos. • Obtención del Complemento a 1 de un Número Binario - El complemento a 1 de un número binario se obtiene cambiando todos los 1s por 0s y todos los 0s por 1s: 1 0 1 1 0 0 1 0 Número binario 0 1 0 0 1 1 0 1 Complemento a 1 Escuela Politécnica Superior 66 33 COMPLEMENTO A 1 Y COMPLEMENTO A 2 DE LOS NÚMEROS BINARIOS • Obtención del Complemento a 2 de un Número Binario - El complemento a 2 de un número binario se obtiene s sumando d 1 all LSB del d l complemento l t a 1. 1 Complemento a 2 = (Complemento a 1) + 1 - Ejemplo: Hallar el complemento a 2 de 10110010 Solución. 10110010 01001101 + 1 01001110 Escuela Politécnica Superior Número Binario Complemento a 1 Se suma 1 Complemento a 2 67 COMPLEMENTO A 1 Y COMPLEMENTO A 2 DE LOS NÚMEROS BINARIOS - Método alternativo para obtener el complemento a 2 de un número binario: 11. Se S empieza i por la l derecha d h con ell LSB y se escriben ib los l bits como están hasta encontrar el primer 1, incluido éste. 2. Se calcula el complemento a 1 de los bits restantes. Ejemplo: Calcular el complemento a 2 de 10111000, utilizando el método alternativo. Solución. l ó Complemento a 1 de los bits originales Escuela Politécnica Superior 10111000 Número binario 01001000 Complemento a 2 Estos bits no varían 68 34 NÚMEROS CON SIGNO. REPRESENTACIÓN DE ENTEROS EN COMA FIJA - Los sistemas digitales, tales como la computadora, deben ser capaces de manejar números positivos y negativos. - Un número binario con signo queda determinado por su magnitud y su signo. - El signo indica si un número es positivo o negativo, y la magnitud es el valor del número. - Existen tres formatos binarios para representar los números enteros con signo: signo-magnitud, complemento a 1 y complemento a 2. - Los números no enteros y muy grandes o muy pequeños pueden expresarse en formato de coma flotante. Escuela Politécnica Superior 69 REPRESENTACIÓN DE ENTEROS EN COMA FIJA SIGNO SIGNO-MAGNITUD • El bit de signo - Se reserva un dígito para representar el signo del número En general, número. general el bit más a la izquierda en un número binario con signo es el bit de signo, que indica si el número es positivo o negativo. El significado suele ser: 0, número positivo y 1, número negativo. Se utiliza un 0 para el signo positivo y un 1 para el signo negativo. • Sistema Signo-Magnitud - Cuando un número binario con signo se representa en formato signo-magnitud, el bit más a la izquierda es el bit de signo y los bits restantes son los bits de magnitud. Escuela Politécnica Superior 70 35 REPRESENTACIÓN DE ENTEROS EN COMA FIJA SIGNO SIGNO-MAGNITUD • Sistema Signo-Magnitud - Los bits de magnitud son el número binario real (no complementado) tanto para los números positivos como para los negativos. Por ejemplo: el número decimal 25 es: 00011001 Bit de signo Bits de magnitud El número decimal -25 se expresa así: 10011001 En el sistema signo-magnitud, un número negativo tiene los mismos bits de magnitud que el correspondiente número positivo, pero el bit de signo es un 1 en lugar de un cero. Escuela Politécnica Superior 71 REPRESENTACIÓN DE ENTEROS EN COMA FIJA • Sistema del Complemento a 1 - Los números positivos en el sistema del complemento a 1 se representan de la misma forma que en el formato signo-magnitud. - Los números negativos son el complemento a 1 del correspondiente número positivo. 11100110 En el sistema del complemento a 1, un número negativo es el complemento a 1 del correspondiente número positivo. • Sistema del Complemento a 2 - Los números positivos en el sistema del complemento a 2 se representan de la misma forma que en los sistemas de complemento a 1 y de signo-magnitud. - Los números negativos son el complemento a 2 del correspondiente número positivo. 11100111 En el sistema del complemento a 2, un número negativo es el complemento a 2 del correspondiente número positivo. Escuela Politécnica Superior 72 36 CONVERSIONES DECIMAL / SIGNOSIGNO -MAGNITUD 1. Conversiones decimal signo magnitud: • Como binario pero el signo por separado. • Ejemplos: • Si n = 7 y se desea representar 2710 , su representación es 0011011 • Si n = 7 y se desea representar p –2710 , su representación es 1011011 Escuela Politécnica Superior 73 CONVERSIONES DECIMAL / SIGNOSIGNO -MAGNITUD 2. Conversiones signo-magnitud decimal: - Ejemplos: j p • Si n = 9 y el valor de 001101101, es 10910 • Si n = 9 y el valor de 100110101, es -5310 Escuela Politécnica Superior 74 37 VALOR DECIMAL DE LOS NÚMEROS CON SIGNO • Signo-magnitud - Los valores decimales de los números positivos y negativos se determinan sumando los pesos de todas las posiciones de los bits de magnitud, cuando son 1s, e ignorando aquellas posiciones en las que haya cero. cero El signo se determina por medio del examen del bit de signo. - Ejemplo: Determinar el valor decimal del número binario con signo expresado como signo magnitud: 10010101. Solución. Los siete bits de magnitud g y sus pesos p potencias p de dos son: 26 25 24 23 22 21 20 0 0 1 0 1 0 1 Sumando los pesos de las posiciones donde hay 1s, se tiene: 16 + 4 + 1 = 21 El bit de signo es 1, por tanto, el número es -21. Escuela Politécnica Superior 75 OPERACIONES DE ENTEROS EN COMA FIJA SIGNOSIGNO-MAGNITUD 1. Calculo del opuesto - Inversión del bit más a la izquierda 2. Sumas y restas - Necesidad de analizar los signos. Ejemplo, para la suma: Signo X1 Signo X2 Operación 0 (+) 0 (+) X 1 + X2 3+7=3+7=10 0 ((+)) 1 ((-)) X1 - X2 3 ( 7) 3 7 4 3+(-7)=3-7=-4 1 (-) 0 (+) X 2 - X1 (-3)+7=7-3=4 1 (-) 1 (-) Escuela Politécnica Superior - ( X1 + X 2 ) Ejemplo -3-7=-(3+7)=-10 76 38 OPERACIONES DE ENTEROS EN COMA FIJA SIGNOSIGNO-MAGNITUD • Ejemplos: • Sumar -9 910 y -3 310 = en signo magnitud d con n=6 6 -910 se representa como 101001 -310 se representa como 100011 Para sumar se sumará 3 de 9 con resultado negativo 101001 100011 Los signos L i determinan la operación suma 01001 00011 01100 Se S añade el signo 101100 Escuela Politécnica Superior 77 CARACTERÍSTICAS DE SIGNOSIGNOMAGNITUD • Desbordamientos: Si n = 5 , x = 1110 , y = 610 x es 01011, y es 00110 Su suma es 10001 (aparentemente -1) - Rango de representación: [-2n-1-1, 2n-1-1]. • Dos representaciones para el 0: • 0...(n-2 ceros)...0 • 10...(n-3 ceros)...0 • Operaciones son complicadas. Escuela Politécnica Superior 78 39 REPRESENTACIÓN COMPLEMENTO RESTRINGIDO A LA BASE BASE-1 (COMPLEMENTO A 1 CON BASE 2) • El complemento a 1 de un valor es: • El complemento lógico dígito a dígito de su representación en binario puro, puro si es negativo negativo. • Su representación en binario puro, si es positivo. • Distinción entre positivos y negativos: • Comienzo 0 significa positivo. • Comienzo 1 significa negativo. •D Desbordamientos: m • Ejemplo: valores mayores de 2n-1-1 (una cadena de n-1 dígitos igual a 1) son positivos pero se interpretan como negativos. Escuela Politécnica Superior 79 REPRESENTACIÓN COMPLEMENTO RESTRINGIDO A LA BASE BASE-1 (COMPLEMENTO A 1 CON BASE 2) 1. Conversiones: Complemento a 1 • Algoritmo: decimal • Si ell 1er bit es 0, 0 entonces t se aplica li la l conversión de binario a decimal. • Si el 1er bit es 1, entonces se aplica el complemento a 1 y se aplica la conversión de binario a decimal y el valor es su opuesto. • Ejemplos: • El número en complemento a 1 10011 representa el valor -12, ya que es el opuesto del número binario 011002 = 1210 • El número en complemento a 1 000100 representa el valor 410 Escuela Politécnica Superior 80 40 VALOR DECIMAL DE LOS NÚMEROS CON SIGNO • Complemento a 1 - Los valores decimales de los números positivos en el sistema de complemento a 1, se determinan sumando todas las posiciones de bit donde haya 1s, y se ignoran aquellas posiciones donde haya ceros. - Los valores decimales de los números negativos se determinan asignando el valor negativo al peso del bit de signo, y sumando todos los pesos donde haya 1s, y añadiendo ñ di d luego l 1 all resultado. l d Escuela Politécnica Superior 81 VALOR DECIMAL DE LOS NÚMEROS CON SIGNO • Complemento a 1 - Ejemplo: Determinar el valor decimal de los números binarios con signo expresados en complemento a 1: (a) 00010111 (b) 11101000 Solución. Para (a) 00010111: (a) Los bits y sus pesos según las potencias de dos para el número positivo son: -27 26 25 24 23 22 21 20 0 0 0 1 0 1 1 1 sumando los pesos donde hay 1s: 16 + 4 + 2 + 1 = +23 Escuela Politécnica Superior 82 41 VALOR DECIMAL DE LOS NÚMEROS CON SIGNO • Complemento a 1 - Ejemplo: (Continuación) Solución Para (b) 11101000: Solución. (b) Los bits y sus pesos según las potencias de dos para el número negativo son los siguientes ( el bit de signo negativo tiene un peso de -27, es decir, -128 ): -27 26 25 24 23 22 21 20 1 1 1 0 1 0 0 0 sumando los pesos donde hay 1s -128 + 64 + 32 + 8 = -24 sumando 1 al resultado, el número final es: -24 + 1 = -23 Escuela Politécnica Superior 83 OPERACIONES EN COMPLEMENTO A 1 1. Cálculo del opuesto en complemento a 1 • Algoritmo: • El opuesto de un número en complemento a 1 es su complemento a 1 • Ejemplos: • -210 con 5 dígitos es 11101, su opuesto es 210 • 1210 con 5 dígitos es 01100, su opuesto es -1210 Escuela Politécnica Superior 84 42 OPERACIONES EN COMPLEMENTO A 1 2. Suma en complemento a 1 • Algoritmo: Sumar en bi S binario i puro (excepto cuando ambos son positivos o negativos): • Si no hay acarreo final, el resultado es negativo. • Si hay acarreo final, el resultado es positivo pero hay que sumar el acarreo al resultado. • Ejemplos: • Si n=8 n=8, x=63 x=63, y= y=-28 28 • Si n=9, x=-75, y=40 Escuela Politécnica Superior 85 OPERACIONES EN COMPLEMENTO A 1 3. Resta o sustracción en complemento a 1 - La sustracción es un caso especial de la suma. - Por ejemplo, restar +6 (el sustraendo) de +9 (el minuendo) es equivalente a sumar -6 a +9. - Básicamente la operación de la sustracción cambia el signo del sustraendo y le suma al minuendo. - El resultado de una sustracción se denomina diferencia. • El E ssigno gno de un núm número ro binario nar o pos positivo t o o n negativo gat o sse cambia calculando su complemento a 1. • Para restar dos números con signo se calcula el complemento a 1 del sustraendo y se suman. Cualquier bit de acarreo final se suma al LSB (de más a la derecha). Escuela Politécnica Superior 86 43 OPERACIONES EN COMPLEMENTO A 1 3. Resta o sustracción en complemento a 1 - Ejemplo: Forma normal Forma en complemento a 1 001111 1 1 0011 1 111 6310 - 00011100 + 1 1100011 - 2810 Acarreo final 100100010 1 00100011 3510 - Si no hubiera h bi un bit bi de d acarreo final, fi l entonces ell resultado es un número negativo representado en la forma de complemento a 1. La magnitud del resultado se puede determinar obteniendo su complemento a 1. Escuela Politécnica Superior 87 OPERACIONES EN COMPLEMENTO A 1 3. Resta o sustracción en complemento a 1 - Ejemplo: Restar 6310 de 2810. Forma normal Forma en complemento a 1 00011100 00011100 2810 - 001111 1 1 + 1 1000000 - 6310 110 1 1 100 - 3510 No hay acarreo final - No se tiene un bit de acarreo final, por tanto el resultado es un número negativo g en complemento p a 1. Se debe determinar su complemento a 1 para obtener su magnitud; en este caso es: 00100011 o 3510. Como su signo es negativo, el resultado real es: -3510. Escuela Politécnica Superior 88 44 CARACTERÍSTICAS DEL COMPLEMENTO A 1 • El complemento a 1 es el complemento lógico. • Desbordamientos posibles en la suma: • Ejemplo: Ej l n=6, 6 x=27, 27 y=22 22 • Dos representaciones del 0: 0...(n-2)...0 cero “positivo” y 1...(n-2)...1 cero “negativo”. • Misma magnitud de máximos enteros (positivo y es 2n-1-1 y negativo g menor es mayor -(2n-1-1); por ejemplo 31 y -31, si n=6). • Rango de representación: [0, 2n-1-1] para los positivos y [-(2n-1-1), -0] para los negativos. Escuela Politécnica Superior 89 REPRESENTACIÓN COMPLEMENTO A LA BASE (COMPLEMENTO A 2 CON BASE 2) • El complemento a 2 de un valor es: • El resultado de la suma binaria de 1 y el complemento a 1 del número número, si es negativo. negativo • Su representación en binario puro, si es positivo. • Ejemplos: • -210 con 5 dígitos es 11110 210 = 000102 , -210 en complemento a 1 es 11101 12 + 111012 da el complemento a 2: 11110 • 1210 con 5 dígitos es 01100 01100, 1210 = 011002 • 910 con 4 dígitos 910 = 10012 , 1001 sería el complemento a 2 ¡¡¡ERROR!!! Escuela Politécnica Superior 90 45 REPRESENTACIÓN COMPLEMENTO A LA BASE (COMPLEMENTO A 2 CON BASE 2) • Observaciones: • Positivos y negativos ( 1er bit 0(+), 1(-) ) • Desbordamientos: • Ejemplo: valores mayores de 2n-1-1 (una cadena de n-1 dígitos igual a 1) son positivos pero se interpretan como negativos. Escuela Politécnica Superior 91 REPRESENTACIÓN COMPLEMENTO A LA BASE (COMPLEMENTO A 2 CON BASE 2) 1. Conversiones complemento a 2 • Algoritmo: decimal • Si el 1er bit es 0, 0 entonces se aplica la conversión de binario a decimal. • Si el 1er bit es 1, entonces se realiza el complemento a 2 y se aplica la conversión de binario a decimal y el valor es su opuesto. • Ejemplos: • Con 5 bits el número en complemento a 2 10100 representa el valor -1210 , ya que el complemento a 2 de 10100 es 01100 y representa el valor binario puro de su opuesto 011002 = 1210 • Con 6 bits el número en complemento a 2 0001002 representa el valor 410 Escuela Politécnica Superior 92 46 VALOR DECIMAL DE LOS NÚMEROS CON SIGNO • Complemento a 2 - Los valores decimales de los números positivos y negativos en el sistema de complemento a 2, se determinan sumando los pesos de todas las posiciones de bit donde haya 1s, e ignorando aquellas posiciones donde haya ceros. - El peso del bit de signo en un número negativo viene determinado por su valor negativo. Escuela Politécnica Superior 93 VALOR DECIMAL DE LOS NÚMEROS CON SIGNO • Complemento a 2 - Ejemplo: Determinar los valores decimales de los números binarios con signo expresados en complemento a 2: (a) 01010110 (b) 10101010 Solución. Para (a) 01010110: (a) Los bits y sus pesos según las potencias de dos para el número positivo son: -2 27 26 25 24 23 22 21 20 0 1 0 1 0 1 1 0 sumando los pesos donde hay 1s: 64 + 16 + 4 + 2 = +86 Escuela Politécnica Superior 94 47 VALOR DECIMAL DE LOS NÚMEROS CON SIGNO • Complemento a 2 - Ejemplo: (Continuación) Solución Para (b) 10101010: Solución. (b) Los bits y sus pesos según las potencias de dos para el número negativo son los siguientes (obsérvese que el bit de signo negativo tiene un peso de -27, es decir, -128): -27 26 25 24 23 22 21 20 1 0 1 0 1 0 1 0 sumando los pesos donde hay 1s. -128 + 32 + 8 + 2 = -86 Escuela Politécnica Superior 95 OPERACIONES EN COMPLEMENTO A 2 1. Cálculo del opuesto en complemento a 2 • Algoritmo: El opuesto de un número en complemento a 2 es su complemento a 2 • Ejemplos: • -210 con 5 dígitos es 11110, su opuesto es 210 (00010) • 1210 con 5 dígitos dí i es 01100, 01100 su opuesto es -12 1210 (10100) Escuela Politécnica Superior 96 48 OPERACIONES EN COMPLEMENTO A 2 2. Suma en Complemento a 2 • Algoritmo: Sumar en binario puro (excepto cuando ambos son positivos o negativos): • Si no hay acarreo final, el resultado es negativo. • Si hay acarreo final, el resultado es positivo (se desprecia el acarreo). • Ejemplos: y=-28 • Si n=8, x=63, y • 63 en complemento a 2 es 00111111 • -28 en complemento a 2 es 11100100 2810 = 000111002 (8 bits) Escuela Politécnica Superior 97 OPERACIONES EN COMPLEMENTO A 2 2. Suma en Complemento a 2 • Ejemplos: (Continuación) 28 en complemento a 1 es 11100011 12 + 111000112 = 111001002 •Se suma 0011 11 1 1 111001 00 100100011 • El resultado es 00100011 (001000112 = 3510). • Si n=9, x=-75, y=40 ; x+y = 111011101 que es -3510 Escuela Politécnica Superior 98 49 OPERACIONES EN COMPLEMENTO A 2 • Suma - Los dos números en una suma se denominan sumandos. - El resultado es la suma. - Cuando se suman dos números binarios con signo pueden producirse cuatro casos: 1. Ambos números son positivos. 2. El número positivo es mayor que el negativo en valor absoluto absoluto. 3. El número negativo es mayor que el positivo en valor absoluto. 4. Ambos números son negativos. Escuela Politécnica Superior 99 OPERACIONES EN COMPLEMENTO A 2 • Suma - Ambos números son positivos: 00000111 + 00000100 00001011 7 +4 11 - La suma es positiva y, por tanto, es un número binario real (no complementado). Escuela Politécnica Superior 100 50 OPERACIONES EN COMPLEMENTO A 2 • Suma - El número positivo es mayor que el número negativo en valor absoluto: Acarreo que se descarta 00001111 + 11111010 1 00001001 15 - 6 9 - El bit de acarreo final no se tiene en cuenta. La suma ess positiva siti y, por tanto t t ess un número ú bi binario i reall (no ( complementado). Escuela Politécnica Superior 101 OPERACIONES EN COMPLEMENTO A 2 • Suma - E El número m negativo g es mayor m y que q el número m positivo en valor absoluto: 00010000 16 + 11101000 + - 24 11111000 -8 - La suma es negativa g complemento l a 2. 2 Escuela Politécnica Superior y, y por p tanto, está en 102 51 OPERACIONES EN COMPLEMENTO A 2 • Suma - Ambos números son negativos: 11111011 + 11110111 1 11110010 Acarreo que se descarta -5 + -9 -14 - El bit de acarreo final no se tiene en cuenta. La suma es negativa y, por tanto, está en complemento a 2. Escuela Politécnica Superior 103 OPERACIONES EN COMPLEMENTO A 2 • Condición de desbordamiento (overflow) - Cuando se suman dos números y el número de bits q para representar p p la suma excede al número requerido de bits de los dos números, se produce un desbordamiento que se indica mediante un bit de signo incorrecto. - Un desbordamiento se puede producir sólo cuando ambos números son positivos o negativos. • Por ejemplo: 01111101 + 00111010 10110111 Signo incorrecto Magnitud incorrecta Escuela Politécnica Superior 125 + 58 183 104 52 OPERACIONES EN COMPLEMENTO A 2 • Sustracción - La sustracción es un caso especial de la suma. - Por ejemplo, j p , restar +6 ((el sustraendo)) de +9 ((el minuendo)) es equivalente a sumar -6 a +9. - Básicamente la operación de la sustracción cambia el signo del sustraendo y le suma al minuendo. - El resultado de una sustracción se denomina diferencia • El signo de un número binario positivo o negativo se cambia calculando su complemento a 2. • Para restar dos números con signo se calcula el complemento a 2 del sustraendo y se suman descartando cualquier bit de acarreo final. Escuela Politécnica Superior 105 CARACTERÍSTICAS DEL COMPLEMENTO A 2 • Suma independiente del signo. • Más complicado que el complemento a 1. • Posibilidad de desbordamientos: - Ejemplo: 7910 + 11610 con n=8 resultado (11000011) aparentemente -61, 19510 = 110000112 > 127 = 27-1 • Cero único (0...(n-2 ceros)...0). • Un negativo representable más ([-2n-1, 2n-1-1], si n=6, [-32, 31]). Escuela Politécnica Superior 106 53 RANGO DE REPRESENTACIÓN DE LOS NÚMEROS CON SIGNO - Fórmula para calcular el número de combinaciones diferentes de n bits: Nº total de combinaciones = 2n - Para los números con signo en complemento a 2, el rango de valores para números de n bits es: -(2n-1) a +(2n-1 - 1) habiendo en cada caso un bit de signo y n-1 bits de magnitud. Por ejemplo, con cuatro bits pueden representarse números en complemento a 2 en el rango de -(23) =-8 hasta 23-1=+7. Del mismo modo, con ocho bits, se puede abarcar desde -128 hasta 127; con dieciséis bits se puede ir de -32.768 hasta 32.767, etc. Escuela Politécnica Superior 107 REPRESENTACIÓN EN EXCESO A M 1. Definición La representación en exceso a M de un valor x es la de x+M en binario puro. Si n es el número de dígitos, dígitos suele ser M=2nn-1. • Observación • No es un nuevo sistema de representación. • Ejemplos: • Si n=8 y M=128 • -3 es 12510 = 01111101 • 0 es 12810 = 10000000 • -128 es 010 = 00000000 • 127 es 25510 = 11111111 Escuela Politécnica Superior 108 54 REPRESENTACIÓN EN EXCESO A M 2. Características • Es un sistema utilizado para la representación de números reales en coma flotante. • Similares a complemento a 2. Escuela Politécnica Superior 109 NÚMEROS EN COMA FLOTANTE - Un número en coma flotante (también conocido como número real) tiene dos partes más un signo: mantisa y exponente. parte del número en coma f flotante q que - La mantisa es la p representa la magnitud del número. - El exponente es la parte del número en coma flotante que representa el número de lugares que se va a desplazar el punto decimal (o punto binario). - Para los números en coma flotante binarios, existe el formato definido por el estándar ANSI/IEEE 7541985, que puede tomar tres formas: simple precisión (32 bits), doble precisión (64 bits) y precisión ampliada (80 bits). Escuela Politécnica Superior 110 55 ESTÁNDARES DE REPRESENTACIÓN DE COMA FLOTANTE - Necesidad de estándares. Hay problemas relacionados con coma flotante: • Diferentes precisiones. • Errores E d redondeo. de d d • Implementación de las operaciones. • Excepcionales: División entre 0; Desbordamiento. • Diferentes fabricantes han proporcionado soluciones completas a estas situaciones a las que se conoce como estándares de representación de coma flotante. - Ejemplos: (a) Estándar de IEE; (b) Estándares de IBM; y (c) Estándar de IEEE 754-1985. Escuela Politécnica Superior 111 ESTÁNDAR IEEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - En el formato estándar ANSI/IEEE 754 754-1985 1985 para un número binario de simple precisión, el bit de signo (S) es el que se encuentra más a la izquierda, el exponente (E) incluye los siguientes 8 bits y la mantisa o parte fraccionaria (F) incluye los restantes 23 bits. S 1 bit Exponente (E) 8 bits Escuela Politécnica Superior 32 bits Mantisa (parte fraccionaria, F ) 23 bits 112 56 ESTÁNDAR IEEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - En la mantisa o parte fraccionaria, se entiende que el punto binario estará a la izquierda de los 23 bits. - Realmente, la mantisa consta de 24 bits, ya que, en cualquier número binario, el bit más a la izquierda (más significativo) es siempre 1. Por tanto, este 1 se entiende que estará allí aunque no ocupe una posición de bit real. - Los 8 bits de los que consta el exponente representan un exponente desplazado que se ha obtenido mediante la adición di ión de d 127 all exponente xp n nt real. l - El propósito de este desplazamiento es poder definir números muy grandes o muy pequeños sin necesidad de emplear un bit de signo diferente para el exponente. Escuela Politécnica Superior 113 ESTÁNDAR IEEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - El exponente desplazado permite emplear un rango de valores para los exponentes comprendidos entre -126 y +128. - Ejemplo: 1011010010001 = 1,011010010001 x 212 S 0 E F 10001011 01101001000100000000000 Número = (-1)s (1 + F) (2E-127) Escuela Politécnica Superior 114 57 ESTÁNDAR IEEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - Ejemplo del método: dado el siguiente número binario en coma flotante, determinar el número decimal correspondiente: p 1 10010001 10001110001000000000000 El bit de signo es 1. El exponente desplazado es: 10010001 = 145 ; aplicando la formula, obtenemos 145 127) Nú Número = ((-1) 1)1 (1.10001110001) (1 10001110001) (2145-127 = (-1) (1.10001110001) (218) = -1100011100010000000 Este número binario en coma flotante es equivalente a: -407.680 en decimal. Escuela Politécnica Superior 115 ESTÁNDAR IBM. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - En el formato estándar IBM para un número binario de simple precisión, el bit de signo (S) es el que se encuentra más a la izquierda, el exponente (E) incluye los siguientes 7 bits y la mantisa (M) incluye los restantes 24 bits. Bit 31 30 29 28 27 26 25 24 23 … S 26 … 32 bits 20 2-1 … S < Exponente (E) desplazado > < Escuela Politécnica Superior 0 2-24 Mantisa (M) > 116 58 ESTÁNDAR IEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - En el formato estándar IEE para un número binario de simple precisión, el bit de signo (S) es el que se encuentra en el bit 24, el exponente (E) incluye los 7 bits de más a la izquierda y la mantisa (M) incluye los restantes 24 bits. Bit 31 30 29 28 27 26 25 24 23 … 26 < … 20 Exponente (E) desplazado Escuela Politécnica Superior 0 32 bits S 2-1 … > S< 2-24 Mantisa (M) > 117 ESTÁNDAR IEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - Presenta dos precisiones: Precisión Sencilla o Simple Precisión (32 bits, es decir dos palabras de 16 bits) y D bl Precisión Doble P i ió (64 bits, bi es decir d i cuatro palabras l b d 16 de bits). - Observación práctica: Aparición frecuente de la representación interna en hexadecimal. La base usada en el estándar IEE es 16. - Método para el estándar IEE. Ejemplo 1: ¿Cómo se representa p s nt por p ejemplo j mpl ell número núm 10 5010 en 10.50 n coma m flotante de simple precisión? Escuela Politécnica Superior 118 59 ESTÁNDAR IEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - Pasos: 11. Convertir 10.50 10 5010 a la base 16, 16 ya que la base usada en este estándar es la 16. Es decir A.816. 2. Normalizar el número, es decir debemos mover el punto decimal a la izquierda hasta que el número esté normalizado. Un número en coma flotante está normalizado cuando el dígito inmediatamente a la derecha del punto (en la izquierda de la mantisa) no es un 0 mientras mi nt s que qu ell número núm a la l izquierda i qui d del d l punto punt decimal es un 0. Este 0 se omite cuando el número es almacenado como una fracción. Es decir, tenemos: .A8 E16 + 1. Escuela Politécnica Superior 119 ESTÁNDAR IEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - Pasos: 3. En el estándar IEE el exponente está desplazado por 64 es decir está en exceso 6410. Así, 64, Así tenemos: Desplazamiento + Exponente = Exponente Desplazado 6410 + 110 = 6510 Es decir 10000012 . 4. El signo es positivo, el bit que presenta el signo será 0. 5. El resultado final es: 1000 001 Exponente (E) desplazado 8 2 Escuela Politécnica Superior 0 1010 1000 0000 0000 0000 0000 S Mantisa (M) A 8 0 0 0 016 120 60 ESTÁNDAR IEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - Ejemplo 2. Determinar el valor decimal del siguiente número en hexadecimal en la forma de coma flotante según el estándar IEE IEE: 84 16 38 52. - Pasos: 1. Convertir a binario el número hexadecimal: 8 4 1 6 3 8 5 2 1000 010 0 0001 0110 0011 1000 0101 0010 <Exponente> p Signo g < Mantisa > Signo: el bit de signo es 0, ya que el número es positivo. Escuela Politécnica Superior 121 ESTÁNDAR IEE. NÚMEROS BINARIOS EN COMA FLOTANTE DE SIMPLE PRECISIÓN - Pasos: 2. Exponente: 10000102 = 6610 con un desplazamiento de 64 entonces el exponente real es E16 + 2. 64, 2 3. Mantisa: 16385216. 4. Como el exponente que hemos determinado es +2, podemos desnormalizar el número moviendo dos lugares a la derecha la coma decimal, así tenemos: 16.385216 5. Convertimos ahora a la base 10 el número y tenemos: (1 x 161) + (6 x 160) , (3 x 16-1) + (8 x 16-2) + (5 x 16-3) + (2 x 16-4) y finalmente se tiene: 22.2210. Escuela Politécnica Superior 122 61 REPRESENTACIONES DE NÚMEROS RACIONALES EN SISTEMAS POSICIONALES 1. Representación de la parte entera • Visto en sesiones anteriores 2. Representación p de la parte p fraccionaria • Convenios: - Separación de la parte entera por la coma: , - Colocación: a la derecha de la parte entera. parte_entera,parte_fraccionaria • Ejemplos: 13,9510 A42F,1C16 36,7418 1011110,11012 Escuela Politécnica Superior 123 REPRESENTACIONES DE NÚMEROS RACIONALES EN SISTEMAS POSICIONALES 1. Valor de un número fraccionario en base b • El valor del número e,f • Se calcula: - Suma del valor de la parte entera (e), y del valor de la parte fraccionaria (f). • Valor de la parte entera - Visto en sesiones anteriores Escuela Politécnica Superior 124 62 REPRESENTACIONES DE NÚMEROS RACIONALES EN SISTEMAS POSICIONALES • Valor de la parte fraccionaria - Valores para las nuevas posiciones Número … X4 X3 X2 X1 X0 ¸ X-1 X-2 X-3 X-4 X-5 … Posición … 4 ¸ -1 -2 -3 -4 -5 … ¸ b-1 b-2 b-3 b-4 b-5 … Valor 3 2 1 0 … b4 b3 b2 b1 b0 Escuela Politécnica Superior 125 REPRESENTACIONES DE NÚMEROS RACIONALES EN SISTEMAS POSICIONALES • Ejemplos • Binario: 1011110,11012 = 94,812510 1 0 1 1 1 1 0 , 1 26 25 24 23 22 21 20 1 0 1 2-1 2-2 2-3 2-4 • Octal: 36,7418 = 30,93945312510 3 6 81 80 , 7 4 1 8-1 8-2 8-3 • Hexadecimal: A42F,1C16 = 42031,10937510 A 4 2 F 163 162 161 160 Escuela Politécnica Superior , 1 C 16-1 16-2 126 63 CONVERSIONES DE RACIONALES • Para convertir a otra base el número e,f • Se procede: • Se convierte la parte entera (e). • Se convierte la parte fraccionaria (f). • Se escriben separadas por la coma. - La conversión de la parte entera se ha visto en sesiones anteriores. • Conversiones de la parte fraccionaria a la decimal - Se puede aplicar el cálculo de valor (decimal) visto en sesiones anteriores. Escuela Politécnica Superior 127 CONVERSIONES DE PARTE FRACCIONARIA 1. Conversión decimal hexadecimal - Para convertir la parte fraccionaria decimal a hexadecimal se procede: • Posición -1 • Repetir hasta suficiente número de decimales hexadecimales: - dígito de la posición parte_entera(decimalx16) - decimal parte_fraccionaria(decimalx16) - posición posición - 1 Escuela Politécnica Superior 128 64 CONVERSIONES DE PARTE FRACCIONARIA • Ejemplos: • 135,7810 = 87,C7...16 • Parte Entera: • 13510 = 8716 • Parte Fraccionaria: • 0,78 x 16 = 12,48 ⇒ dígito -1: 1210 = C16 • 0,48 x 16 = 7,48 ⇒ dígito -2: 710 = 716 • ... Escuela Politécnica Superior 129 CONVERSIONES DE PARTE FRACCIONARIA 2. Conversión decimal octal - Para convertir la parte fraccionaria decimal en octal se procede: • Posición -1 • Repetir hasta suficiente número de decimales octales: - dígito de la posición parte_entera(decimalx8) - decimal parte fraccionaria(decimalx8) parte_fraccionaria( - posición posición - 1 Escuela Politécnica Superior 130 65 CONVERSIONES DE PARTE FRACCIONARIA • Ejemplos: • 135,7810 = 207,61...8 • Parte Entera: • 13510 = 2078 • Parte Fraccionaria: • 0,78 x 8 = 6,24 ⇒ dígito -1: 610 = 68 • 0,24 x 8 = 1,92 ⇒ dígito -2: 110 = 18 • … Escuela Politécnica Superior 131 CONVERSIONES DE PARTE FRACCIONARIA 3. Conversión decimal binario - Para convertir la parte fraccionaria decimal a binario se procede: • Posición -1 • Repetir hasta suficiente número de decimales binarios: - dígito de la posición parte_entera(decimalx2) - decimal parte fraccionaria(decimalx2) parte_fraccionaria( - posición posición - 1 Escuela Politécnica Superior 132 66 CONVERSIONES DE PARTE FRACCIONARIA • Ejemplos: • 135,7810 = 10000111,110001...2 • Parte Entera: • 13510 = 100001112 • Parte Fraccionaria: • 0,78 x 2 = 1,56 ⇒ dígito -1: 1 • 0,56 x 2 = 1,12 ⇒ dígito -2: 1 • 0,12 x 2 = 0,24 ⇒ dígito -3: 0 • 0,24 x 2 = 0,48 ⇒ dígito -4: 0 • 0,48 x 2 = 0,96 ⇒ dígito -5: 0 • 0,96 x 2 = 1,92 ⇒ dígito -6: 1 • ... Escuela Politécnica Superior 133 REPRESENTACIÓN DE NÚMEROS NATURALES EN BCD 1. Observaciones previas • Número de distintos números binarios de n cifras: 2n . • Bits necesarios para representar {0 {0, 11..., 9}: 4 y sobran 4 (2 = 16, 16-10 = 6). 2. Definición En los sistemas decimales codificados en binario se convierten uno a uno, los dígitos decimales a binario. 2.1. Variantes • Diferentes métodos BCD difieren: - Número de bits usados por dígito. - Tipo de representación de los dígitos. - Uso del espacio sobrante. Escuela Politécnica Superior 134 67 REPRESENTACIÓN DE NÚMEROS NATURALES EN BCD - El código decimal binario (BCD, Binary Coded Decimal) es una forma de expresar cada uno de los dígitos decimales con un código binario. • El código ódi 8421 - El código 8421 es un tipo de código decimal (BCD). - Código decimal binario significa que cada dígito decimal, de 0 hasta 9, se representa mediante un código binario de cuatro bits. - La designación 8421 indica los pesos binarios de los cuatro bits (23, 22 , 21 , 20 ). - La facilidad de conversión entre los números en código 8421 y los números decimales es la principal ventaja. Escuela Politécnica Superior 135 REPRESENTACIÓN DE NÚMEROS NATURALES EN BCD - Tabla de la conversión decimal/BCD Dígito decimal BCD 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 • Códigos no válidos. Con cuatro dígitos, se pueden representar dieciséis números (desde 0000 hasta 1111), pero en el código 8421, sólo se usan diez de ellos. Las seis combinaciones q que no se emplean p (1010, 1011, 1100, 1101, 1110 y 1111) no son válidas en el código BCD 8421. Escuela Politécnica Superior 136 68 BCD EXTENDIDO O DESEMPAQUETADO 1. Conversión decimal BCD extendido • Uso de un octeto (8 bits) por dígito decimal. • Representación de los dígitos: binario puro. • Cuartetos (4 bits) no usados de relleno (por defecto a 0). - Ejemplos: • 31710 es: 0000 0011 0000 0001 0000 0111 • 12510 es: 0000 0001 0000 0010 0000 0101 • 25610 es: s: 0000 0010 0000 0101 0000 0110 • 4578510 es: 0000 0100 0000 0101 0000 0111 0000 1000 0000 0101 Escuela Politécnica Superior 137 BCD EXTENDIDO O DESEMPAQUETADO 2. Conversión BCD extendido decimal • Proceso Inverso - Ejemplo: 0000 1000 0000 0111 0000 0101 0000 0000 0000 0001 es 8750110 Escuela Politécnica Superior 138 69 BCD CONDENSADO O EMPAQUETADO 1. Conversión decimal BCD empaquetado • Idem usando cuartetos (4 bits) - Ejemplos: • 31710 es: 0011 0001 0111 • 12510 es: 0001 0010 0101 • 25610 es: 0010 0101 0110 • 4578510 es: 0100 0101 0111 1000 0101 2. Conversión BCD empaquetado • Proceso roc so Inverso n rso decimal - Ejemplo: • 0001 0000 0000 0000 0100 0111 es 10004710 Escuela Politécnica Superior 139 BCD CONDENSADO O EMPAQUETADO • Conversión Decimal BCD Empaquetado - Ejemplo: Convertir a BCD los siguientes números decimales. (a) 35 (b) 98 (c) 170 (d) 2469 Solución. (a) 3 5 0011 0101 (b) 9 8 1001 1000 Escuela Politécnica Superior (c) 1 7 0 (d) 2 4 6 9 0001 0111 0000 0010 0100 01101001 140 70 BCD CONDENSADO O EMPAQUETADO • Conversión BCD Empaquetado Decimal - Ejemplo: Convertir a decimal los siguientes códigos BCD: (a) 10000110 (b) 001101010001 (c) 1001010001110000 Solución. ((a)) 1000 0110 ((b)) 0011 0101 0001 ((c)) 1001 0100 0111 0000 8 6 3 5 1 9 Escuela Politécnica Superior 4 7 0 141 SUMA EN BCD - BCD es un código numérico y puede utilizarse en operaciones aritméticas. - La suma es la más importante de estas operaciones ya que las otras tres operaciones q p ((sustracción, multiplicación y división) se pueden llevar a cabo utilizando la suma. - Método para sumar dos números BCD: Paso 1. Sumar los dos números BCD utilizando las reglas de la suma binaria vistas anteriormente. Paso 2. Si una suma de 4 bits es igual o menor que 9, es un número BCD válido válido. Paso 3. Si una suma de 4 bits es mayor que 9, o si genera un acarreo en el grupo de 4 bits, el resultado no es válido. En este caso, se suma 6 (0110) al grupo de 4 bits para saltar así los seis estados no válidos y pasar al código 8421. Si se genera un acarreo al sumar 6, éste se suma al grupo de 4 bits siguiente. Escuela Politécnica Superior 142 71 SUMA EN BCD - Ejemplo de la suma en BCD para los casos en que la suma en cada columna de 4 bits es igual o menor que 9 y, por tanto, las sumas de 4 bits son números BCD válidos. • Ejemplo: Sumar los siguientes números BCD: (b) 00100011 + 00010101 (a) 0011 + 0100 (c) 10000110 + 00010011 (d) 010001010000 + 010000010111 Solución. Se muestra la suma en decimal con propósitos p de comparación. (a) 0011 3 (b) 0010 0011 23 +0100 0111 + 4 7 + 0001 0011 0101 1000 + 15 38 Escuela Politécnica Superior 143 SUMA EN BCD • Ejemplo: Solución. (Continuación) (c) 1000 + 0001 1001 0110 86 (d) 0100 0101 0000 450 0011 + 13 1001 99 + 0100 1000 0001 0111 0110 0111 + 417 867 Observe que en ningún caso la suma de las cuatro columnas de 4 bits excede 9, por lo que los resultados son números ú BCD válidos. álid Escuela Politécnica Superior 144 72 SUMA EN BCD - Ejemplo del procedimiento en el caso de que se produzcan sumas no válidas (mayores que 9 o que generen acarreo). • Ej Ejemplo:Sumar mp o Sumar los os siguientes s gu nt s núm números ros BCD: D (a) 1001 + 0100 (b) 1001 + 1001 (c) 00010110 + 00010101 (d) 01100111 + 01010011 Solución. La suma en números decimales se indica con propósitos de comparación. (a) 1001 + 0100 1101 Número BCD no válido (> 9) + 0110 Se suma 6 0001 0011 Número BCD válido 1 9 + 4 13 3 Escuela Politécnica Superior 145 SUMA EN BCD • Ejemplo: Sumar los siguientes números BCD: (a) 1001 + 0100 ( ) 00010110 + 00010101 (c) (b) 1001 + 1001 (d) 01100111 + 01010011 Solución. (b) 1001 + 1001 1 0010 + 0110 0001 1000 1 9 + 9 No válido debido al acarreo 18 Se suma 6 Número BCD válido 8 Escuela Politécnica Superior 146 73 SUMA EN BCD • Ejemplo: Sumar los siguientes números BCD: (a) 1001 + 0100 (c) 00010110 + 00010101 (b) 1001 + 1001 (d) 01100111 + 01010011 Solución. (c) 0001 0110 + 0001 0101 0010 1011 El grupo de la derecha no es 16 + 15 31 válido ((>9), ) el g grupo p de la izquierda q sí. + 0110 Se suma 6 al código no válido. 0011 Se suma el acarreo, 0001, al siguiente grupo. 0001 Número BCD válido 3 1 Escuela Politécnica Superior 147 SUMA EN BCD • Ejemplo: Sumar los siguientes números BCD: (a) 1001 + 0100 ( ) 00010110 + 00010101 (c) (b) 1001 + 1001 (d) 01100111 + 01010011 Solución. (d) 0110 0111 67 + 0101 0011 + 53 1011 1010 Ambos grupos no son válidos (>9). 120 0001 1 + 0110 + 0110 Se suma 6 a ambos grupos 0010 0000 Número BCD válido 2 Escuela Politécnica Superior 0 148 74 REPRESENTACIÓN DE ENTEROS EN BCD EXTENDIDO 1. Representación del signo • En el cuarteto no utilizado del octeto del dígito menos significativo. • Posibles valores: • Por defecto + - 0000 1111 • Otros + - B16 = 1011 D16 = 1101 Escuela Politécnica Superior 149 REPRESENTACIÓN DE ENTEROS EN BCD EXTENDIDO 2. Ejemplos • +38110 es en BCD extendido: extendid : 0000 0011 0000 1000 0000 0001 • -38110 es en BCD extendido: 0000 0011 0000 1000 1111 0001 3 Características de BCD 3. • Útil en determinadas circunstancias (con datos de poco proceso). Escuela Politécnica Superior 150 75 REPRESENTACIÓN DE ENTEROS EN BCD EMPAQUETADO 1. Representación del signo • Idem desempaquetado excepto que es el primer cuarteto. 2. Ejemplos • +38110 es en BCD empaquetado: 0011 1000 0001 0000 • -38110 es en BCD empaquetado: 0011 1000 0001 1111 3. Características de BCD • Útil en determinadas circunstancias (con datos de poco proceso). Escuela Politécnica Superior 151 CÓDIGO ALFANUMÉRICO - Para la comunicación, no sólo se necesitan números, sino también letras y otros símbolos. - En sentido estricto, los códigos alfanuméricos son códigos g que representan q p números y caracteres alfabéticos (letras). - Sin embargo, la mayoría de estos códigos también representan otros caracteres tales como símbolos y distintas instrucciones para la transferencia de información. - Como mínimo, un código alfanumérico debe poder representar t los l diez di dí it decimales dígitos d i l y las l 26 letras l t del alfabeto, es decir, un total de 36 elementos. - Esta cantidad requiere seis bits para cada combinación de código, puesto que cinco son insuficientes (25=32). Escuela Politécnica Superior 152 76 CÓDIGO ALFANUMÉRICO - Con seis bits se tiene un total de 64 combinaciones, por lo que 28 de ellas no se utilizan. - En muchas aplicaciones, para completar la comunicación, son necesarios otros símbolos además de los números y las letras. Se necesitan espacios, puntos, dos puntos, punto y coma, signo de interrogación, etc. - También se necesitan instrucciones para comunicar al sistema receptor qué hacer con la información. - De este modo, con códigos con una longitud de seis bits, se pueden manejar números decimales, el alfabeto y otros 28 símbolos. El ASCII es el código alfanumérico más común. Otros ejemplos de códigos son: Videotext y EBCDIC. Escuela Politécnica Superior 153 CÓDIGO ASCII - El American Standard Code for Information Interchange (ASCII, Código Estándar Americano para el Intercambio de Información) es un código alfanumérico universalmente aceptado, que se usa en la mayoría de las computadoras y otros equipos electrónicos. - La mayor parte de los teclados de computadora se estandarizan de acuerdo con el código ASCII, y cuando se pulsa una letra, un número o un comando de control, es el código ASCII el que se introduce en la computadora. - El código ASCII dispone de 128 caracteres que se representan mediante un código binario de 7 bits. El código ASCII puede considerarse como un código de 8 bits en el que el MSB siempre es 0. Escuela Politécnica Superior 154 77 CÓDIGO ASCII - En Hexadecimal, este código de 8 bits va de 00 hasta 7F. - Los primeros 32 caracteres ASCII son comandos no gráficos, áfi que nunca se imprimen i i o presentan en pantalla, y solo se utilizan para propósitos de control. Ejemplos de caracteres de control son el carácter nulo, avance de línea, inicio de texto y escape. - Los demás caracteres son símbolos gráficos que pueden p o mostrarse en p pantalla, e incluyen y las letras imprimirse del alfabeto (mayúsculas y minúsculas), los diez dígitos decimales, los signos de puntuación y otros símbolos comúnmente utilizados. Escuela Politécnica Superior 155 CÓDIGO ASCII - Tabla del Código ASCII, con su representación decimal, hexadecimal y binaria para cada carácter y símbolo. ( (En la p primera columna de la tabla se enumeran los nombres de los 32 caracteres de control (en hexadecimal, de 00 hasta 1F), y en las restantes columnas se muestran los símbolos gráficos (en hexadecimal, de 20 hasta 7F)). Escuela Politécnica Superior 156 78 CÓDIGO ASCII Tabla: American Standard Code for Information Interchange (ASCII) Escuela Politécnica Superior 157 CÓDIGO ASCII EXTENDIDO - Además de los 128 caracteres ASCII estándar, existen 128 caracteres adicionales que fueron adoptados por IBM para utilizar en sus computadoras personales (PC). - Debido a la popularidad del PC, estos caracteres especiales del código ASCII extendido se usan también en otras aplicaciones distintas de las PC, por lo que se ha convertido en un estándar oficial. - Los caracteres del código ASCII extendido se representan mediante una serie de códigos de 8 bits que van, en hexadecimal, del 80 hasta FF. Escuela Politécnica Superior 158 79 CÓDIGO ASCII EXTENDIDO - El código ASCII extendido está formado por caracteres que pertenecen a las siguientes categorías generales: 1. Caracteres alfabéticos no ingleses 2 Símbolos 2. í b l de d moneda d no ingleses i l 3. Letras griegas 4. Símbolos matemáticos 5. Caracteres para gráficos 6. Caracteres para gráficos de barras 7. Caracteres sombreados. - Tabla del conjunto de caracteres del código ASCII extendido, junto con sus representaciones decimal y hexadecimal. Escuela Politécnica Superior 159 CÓDIGO ASCII EXTENDIDO Tabla: Caracteres de código ASCII extendido Escuela Politécnica Superior 160 80 EBCDIC - EBCDIC (Extended Binary Coded Decimal Interchange Code) - Es un código de 8 bits. bits - Está representado por la tabla que se adjunta. - Puede observarse que los números se representan en BCD desempaquetado pero el primer cuarteto se completa con bits 1. Escuela Politécnica Superior 161 EBCDIC - Ejemplos: • Ejemplo 1: Escuela Politécnica Superior 162 81 EBCDIC - Ejemplos: • Ejemplo 2: Escuela Politécnica Superior 163 UNICODE - Código de E/S propuesto por un consorcio de empresas y entidades que permite escribir aplicaciones que sean capaces de procesar texto de diversos sistemas de escritura. Está reconocido como estándar ISO/IEC 10646. 10646 - Propiedades de Unicode: * Universalidad: persigue cubrir la mayoría de lenguajes escritos existentes en la actualidad. * Unicidad: a cada carácter se le asigna exactamente un único código. * Uniformidad: todos los símbolos se representan con un número fijo de 16 bits. Escuela Politécnica Superior 164 82 UNICODE - Características de Unicode: * Cada carácter Unicode está formado por una cadena de 16 bits => se pueden codificar 216 = 65.356 símbolos. * No contempla la codificación de caracteres de control. * Incluye caracteres combinados (por ej., ñ, ä, ç). * No determina la forma o imagen concreta de cada carácter (el “font” o fuente), sino que cada combinación representa un concepto abstracto. abstracto Un mismo carácter puede ser escrito de distintas formas y todas las variantes se codifican con una única combinación. Escuela Politécnica Superior 165 UNICODE - Características de Unicode: * También con la misma idea de evitar duplicidades, caracteres muy parecidos en idiomas distintos, tienen igual posición en el código. Esto ocurre por ejemplo con los ideogramas japoneses, chinos y coreanos; aunque su imagen sea distinta, si su significado es el mismo tienen igual código. * No ocurre lo mismo con las letras mayúsculas y minúsculas de los caracteres latinos que tienen códigos di i distintos. * Su utilización está facilitando la compatibilidad de programas y datos a través de todo el mundo. Escuela Politécnica Superior 166 83 UNICODE - Esquema de asignación de códigos en Unicode Escuela Politécnica Superior 167 UNICODE - Ejemplo: Codificar la cadena de caracteres C/Rúa, 7 en ASCII (ISO 8859-1, Latín 1) y en Unicode Nótese que para obtener la codificación Unicode hemos añadido 8 bits [0] delante de cada código ASCII de 8 bits. Escuela Politécnica Superior 168 84