Universidad Nacional de San Juan Facultad de Ingeniería Unidad III Representación de la Información Cátedra: Computación I (ELO) Informática I (BIO) Departamento de Electrónica y Automatica COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información INDICE 3 REPRESENTACION DE LA INFORMACION............................................................................................................. 2 3.1 3.1.1 3.1.2 3.1.3 3.1.4 3.2 3.2.1 3.3 3.3.1 3.4 3.4.1 3.4.2 3.4.3 SISTEMAS NUMÉRICOS. ............................................................................................................................................... 2 Sistema decimal. .................................................................................................................................................... 2 Sistema Binario Natural. ....................................................................................................................................... 3 Sistema numérico octal. ......................................................................................................................................... 6 Sistema numérico hexadecimal.............................................................................................................................. 7 CÓDIGO BCD. ............................................................................................................................................................. 9 Comparación entre BCD y binario........................................................................................................................ 9 CÓDIGOS ALFANUMÉRICOS. ...................................................................................................................................... 10 EL código ASCII. ................................................................................................................................................. 10 REPRESENTACIÓN DE NÚMEROS ................................................................................................................................ 11 Representación de números con signo................................................................................................................. 11 Simple precisión, doble precisión. ....................................................................................................................... 13 Representación Coma Fija y Coma Flotante....................................................................................................... 13 i COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información UNIDAD III 3 REPRESENTACION DE LA INFORMACION 3.1 Sistemas Numéricos. En la tecnología digital se utilizan muchos sistemas numéricos. Los más comunes son los sistemas decimal, binario, octal y hexadecimal. El sistema decimal es sin duda el más conocido por nosotros ya que es de uso cotidiano, si analizamos sus características podremos entender mejor los otros sistemas. 3.1.1 Sistema decimal. El sistema decimal se compone de 10 numerales o símbolos. Estos 10 símbolos son 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9; al utilizar estos símbolos como dígitos de un número podemos expresar cualquier cantidad. El sistema decimal, también conocido como sistema de base 10, ha surgido en forma natural debido a que el ser humano tiene diez dedos. De hecho, la palabra "dígito" significa dedo en latín. El sistema decimal es un sistema posicional o también llamado de valor posicional, en el cual el valor de un dígito depende de su posición. Por ejemplo, consideremos el número decimal 453. Sabemos que el dígito 4 representa en realidad 4 centenas, el 5 representa 5 decenas y el 3, tres unidades. En esencia, el 4 tiene el mayor valor de los tres dígitos; a éste se le conoce como el dígito más significativo (MSD). El número 3 tiene el valor menor y se denomina dígito menos significativo (LSD). Figura 3-1 Valores de posición decimal como potencias de 10 Expresando lo anterior con mayor rigor, tenemos que las diversas posiciones relativas al punto decimal tienen valores que se pueden expresar como potencias de 10. Esto se ilustra en la Figura 3-1, donde se representa el número 2745,214. El punto decimal separa las potencias positivas de 10 de las potencias negativas. Así pues el número 2745,214 es igual a: (2*103 + 7*102 + 4*101 + 5*100 + 2*10-1 + 1*10-2 + 4*10-3) En términos generales, cualquier número es simplemente la suma de los productos del dígito por su valor posicional (peso). En el sistema decimal con dos dígitos decimales podemos contar hasta 102 = 100 números diferentes (de 0 a 99). Con tres espacios decimales podemos contar hasta mil números (de 0 a 999); y así sucesivamente. En general, con N espacios 2 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información decimales o dígitos podemos contar hasta 10N números diferentes, comenzando con el 0 y el máximo número será siempre 10N - 1. 3.1.2 Sistema Binario Natural. Desafortunadamente, el sistema numérico decimal no se presta para una implementación conveniente en los sistemas digitales. Por ejemplo resulta muy difícil diseñar un equipo electrónico que pueda funcionar con 10 diferentes niveles de tensión (de los cuales cada uno representa a un caracter decimal, 0-9). Por otro lado, es muy fácil diseñar circuitos electrónicos precisos y confiables que operen con solo 2 niveles de tensión. Por ésta razón, casi todos los sistemas digitales utilizan el sistema numérico binario (base 2) como sistema numérico básico para sus operaciones. En el sistema binario solamente hay dos símbolos posibles, el 0 y el 1, no obstante, éste sistema de base 2 se puede utilizar para representar cualquier cantidad numérica, empleando para ello la cantidad de dígitos binarios que sean necesarios. El sistema binario es un sistema de valor posicional (similar al decimal), en donde cada dígito binario tiene un valor propio expresado como potencia de 2. Esto se observa en la Figura 3-2, aquí, los espacios que hay a la izquierda del punto binario (equivalente del punto decimal) son potencias positivas de 2 y los espacios que hay a la derecha del punto corresponden a las potencias negativas de 2. El número 1011,101 se representa en la Figura 3-2. Para determinar su equivalente en el sistema decimal simplemente tomamos la suma de los productos del valor de cada bit (0 o 1) por su valor posicional correspondiente. 1011,1012 = (1*23 + 0*22 + 1*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3) = 8 + 0 + 2 + 1 + 0.5 + 0 + 0.125 = 11.62510 Obsérvese en la operación anterior que los subíndices (2 y 10) se usan para indicar la base en la cual se expresa el número en cuestión. Esta convención sirve para evitar confusión cuando se utiliza más de un sistema numérico. En el sistema binario, el término dígito binario se lo indica normalmente como bit (ver unidad 2). Como se observó en el sistema decimal, en el sistema binario utilizando N bits o espacios, podemos contar 2N números diferentes. Por ejemplo, con 2 bits podemos realizar hasta 22 = 4 conteos; con 4 bits tendremos 24 = 16 combinaciones; y así sucesivamente. El Nro. mayor a representar estará dado por 2N-1. Figura 3-2 - Valores de posición binaria como potencias de 2 3 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información 3.1.2.1 Representación de cantidades binarias. En los sistemas digitales, la información que está siendo procesada por lo general se presenta en forma binaria. Las cantidades binarias se pueden representar físicamente por medio de cualquier dispositivo que solamente tenga dos estados de operación o dos posibles condiciones. Por ejemplo, un interruptor tiene solo dos estados: abierto o cerrado. Arbitrariamente podemos considerar que un interruptor abierto represente el 0 binario y que uno cerrado represente el 1 binario. Con ésta suposición se puede representar cualquier número binario como se ilustra en la Figura 3-3(a), donde los estados de los diversos interruptores representan la cantidad 100102. Otro ejemplo de lo anterior se observa en la misma figura donde se utilizan agujeros perforados en papel para representar números binarios. Un agujero perforado es un 1 binario y la ausencia de un agujero es un cero binario. Existen muchos otros dispositivos que solamente tienen dos estados de operación o bien que solo pueden operar en dos condiciones extremas. Entre ellos se pueden citar: la bombilla eléctrica (encendida o apagada), el diodo (conduce o no conduce), un relay (energizado o no energizado), el transistor (cortado o saturado), fotocélula (iluminada u oscura), termostato (abierto o cerrado) y la cinta magnética (magnetizada o desmagnetizada). Figura 3-3 Uso de (a) interruptores (b) cinta de papel perforada para representar números binarios En los circuitos electrónicos digitales, la información binaria se representa por medio de tensiones o corrientes eléctricas que están presentes en las entradas o en las salidas de los diversos circuitos. Comúnmente, el 0 y el 1 binario se representan con dos niveles de tensión nominal. Por ejemplo, cero volts (0 V) podría representar el cero binario y +5 V., el uno binario. En realidad debido a las variaciones del circuito, el 0 y el 1 se representan por medio de intervalos de tensión. Esto se muestra en la Figura 3-4(a), donde cualquier tensión entre 0 y 0,8 V representa un cero binario y cualquier tensión entre 2 y 5 V representa un uno. La figura 3.4 (b) muestra una forma de onda digital secuencial para representar el valor binario 010102. Se puede observar otra diferencia significativa entre los sistemas digitales y los analógicos. En los sistemas digitales, el valor exacto de una tensión no es importante; por ejemplo, una tensión de 3,6 V es lo mismo que una de 4.3 V. En los sistemas analógicos el valor exacto de una tensión sí es importante. Por ejemplo, si la tensión analógica es proporcional a la temperatura registrada por un transductor, 3,6 V representaría una temperatura diferente a la correspondiente a 4,3 V. En otras palabras, el valor de la tensión lleva asociada información significativa. Esta característica implica que el diseño de circuitos analógicos precisos es mucho más complicado que el de circuitos digitales. 4 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información 3.1.2.2 Conversión de binario a decimal. Teniendo en cuenta lo expresado en párrafos anteriores, donde se definió al sistema de numeración binario como un sistema posicional en el que cada dígito binario (bit) tiene un valor que depende de su posición relativa al LSB. Cualquier número binario puede convertirse a su equivalente decimal, simplemente sumando los valores (pesos) correspondientes a las diversas posiciones en que el número binario contienen un 1. Figura 3-4 (a) Asignaciones comunes de voltaje en el sistema digital; (b) señal digital común. Por ejemplo: 1 1 0 1 12 (binario) 1x24 + 1x23 + 0x22 + 1x21 + 1x20 = 16 + 8 + 2 + 1 = 2710 (decimal) 3.1.2.3 Conversión de decimal a binario. Para convertir números decimales a binario se utiliza un método llamado de divisiones sucesivas, el cual emplea divisiones repetidas por 2. La conversión que se ilustra a continuación para el número 25, requiere que se divida en forma repetitiva por 2 y que se escriban los restos después de cada división hasta que se obtenga un cociente nulo. El número binario se obtiene escribiendo el primer resto como el bit menos significativo (LSB) y el último como el bit mas significativo (MSB). Figura 3-5 5 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información 3.1.3 Sistema numérico octal. El sistema numérico octal es muy importante en el trabajo que se realiza en una computadora digital. Este sistema tiene una base de ocho, lo cual significa que tiene ocho posibles dígitos: 0, 1, 2, 3, 4, 5, 6 y 7. De esta manera, cada dígito de un número octal puede tener cualquier valor entre 0 y 7. Las posiciones de los dígitos de un número octal tienen los siguientes valores: Un número octal puede convertirse fácilmente en su equivalente decimal multiplicando cada dígito octal por su valor posicional (peso). Por ejemplo, 3728 = 3*82 + 7*81 + 2*80 = 3*64 + 7*8 + 2*1 = 25010 3.1.3.1 Conversión de decimal a octal Un Número entero decimal se puede convertir en octal mediante el uso del mismo método de divisiones sucesivas que se usó en la conversión de decimal a binario, pero ahora con un divisor de 8 en lugar de 2. La siguiente figura muestra un ejemplo de esta conversión. Figura 3-6 Nótese que el primer resto o residuo se transforma en el dígito menos significativo (LSD) del número octal y el último residuo se convierte en el dígito más significativo (MSD). 3.1.3.2 Conversión de octal a binario La ventaja principal del sistema numérico octal es la facilidad con la cual puede realizarse la conversión entre números binarios y octales. La conversión de octal a binario se lleva a cabo convirtiendo cada dígito octal en su equivalente binario de 3 bits. Los ocho dígitos posibles se convierten según la siguiente tabla. Dígito Octal Equivalente binario 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 Por medio de estas conversiones cualquier dígito octal se transforma en binario convirtiéndolo en forma individual. Por ejemplo, podemos convertir 4728 en binario de la siguiente manera: 6 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) 4 7 2 100 111 010 Representación de la Información Por lo tanto, el número octal 472 es equivalente al binario 100111010. 3.1.3.3 Conversión de binario a octal. La conversión de enteros binarios en octales es simplemente la operación inversa del proceso anterior. Los bits del número binario se agrupan de a tres comenzando por el menos significativo (LSB). Luego cada grupo se convierte en su equivalente octal de acuerdo a la tabla de equivalencias, algunas veces el número binario no tendrá grupos completos de tres bits, en esos casos se puede agregar uno o dos ceros a la izquierda del bit más significativo. Un ejemplo es el siguiente: Convertir el Número binario 11010110 a octal. 011 010 110 3 2 6 Con N dígitos octales, podemos contar desde 0 hasta 8N - 1, lo que da un total de 8N diferentes combinaciones. Por ejemplo, con tres dígitos octales podemos contar desde 0008 a 7778 lo que hace un total de 83 = 51210 diferentes números. La facilidad con la cual pueden hacerse conversiones entre el sistema octal y el binario hace que el sistema octal sea atractivo como un medio taquigráfico para expresar números binarios grandes. En computadoras grandes son comunes números binarios de hasta 64 bits. Estos números binarios no siempre representan a una cantidad numérica (datos), también pueden representar direcciones de memoria, un código de una instrucción, un código que representa caracteres alfabéticos, o bien el conjunto de bits puede representar el estado en que se encuentran los dispositivos internos o externos a la computadora. Cuando se trabaja con una cantidad considerable de números binarios de muchos bits, es adecuado y más eficaz escribir los números en octal en lugar de binario. Sin embargo, recordemos que los circuitos y sistemas digitales trabajan únicamente en binario; se usa el sistema octal sólo por conveniencia para la operación del sistema. 3.1.4 Sistema numérico hexadecimal. El sistema hexadecimal emplea la base 16, por lo tanto tiene dieciséis posibles símbolos digitales. Utiliza los dígitos de 0 a 9 más las letras A, B, C, D, E y F como símbolos para sus dígitos. La Tabla 3-1 muestra la relaciones existentes entre los sistemas hexadecimal, octal, decimal y binario. Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B Octal 0 1 2 3 4 5 6 7 10 11 12 13 Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 Decimal 0 1 2 3 4 5 6 7 8 9 10 11 7 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) C D E F Representación de la Información 14 15 16 17 1100 1101 1110 1111 12 13 14 15 Tabla 3-1 3.1.4.1 Conversión de hexadecimal a decimal. Un número hexadecimal (hex) se puede convertir a su equivalente decimal utilizando el hecho de que cada posición de los dígitos hexadecimales tiene un peso que corresponde a una potencia de 16, por ser este también un sistema posicional, el LSD tiene un peso de 160 = 1; el siguiente dígito tiene un peso de 161 = 16; el siguiente tiene un valor de 162 = 256 y así sucesivamente. El proceso de conversión se muestra en el siguiente ejemplo: 2AF16 = 2 * 162 + 10 * 161 + 15 * 160 = 512 + 160 + 15 = 68710 3.1.4.2 Conversión de decimal a hexadecimal. La conversión de decimal a hexadecimal se puede realizar por el método de divisiones sucesivas ya utilizado en los sistemas estudiados anteriormente, para este caso el divisor será 16; dado que es la base de este sistema. El método se describe en el siguiente ejemplo: Figura 3-7 3.1.4.3 Conversión de hexadecimal a binario. Al igual que el sistema numérico octal, el sistema hexadecimal se usa principalmente como método "taquigráfico" en la representación de números binarios. La conversión de un número hex a binario es una tarea simple. Cada dígito hex se convierte directamente en su equivalente binario de cuatro bits. Esto se puede apreciar en el ejemplo siguiente, 9F216 = = = 9 F 1001 1111 2 0010 1001111100102 8 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información 3.1.4.4 Conversión de binario a hexadecimal. Esta conversión es exactamente la operación recíproca del proceso anterior. El número binario se agrupa en conjuntos de cuatro bits de derecha a izquierda y si el último grupo queda incompleto se completa con ceros, luego cada grupo se convierte en su dígito hexadecimal equivalente. 1011101001102 = 1011 = B = 1010 0110 A 6 BA616 Con N dígitos hexadecimales, podemos contar desde 0 hasta 16N -1, lo que da un total de 16N diferentes combinaciones. Por ejemplo, con tres dígitos hexadecimales podemos contar desde 00016 a FFF16 lo que hace un total de 163 = 409610 diferentes números. Conclusión: Es conveniente habituarse, desde un principio, a manejar los números en sus distintas representaciones, pues el buen programador deberá usarlas a menudo. 3.2 Código BCD. Cuando números, letras o palabras se representan mediante una combinación especial de símbolos se denomina codificación; y al conjunto de símbolos se le conoce como código. Probablemente uno de los códigos más conocido es el Código Morse, en el cual las series de puntos y rayas representan letras del alfabeto. Se ha observado que cualquier número decimal se puede representar por medio de un número binario equivalente. La combinación de ceros y unos del número binario se puede considerar como un código que representa el número decimal. Cuando un número decimal se representa con su número binario equivalente, se le denomina codificación binaria directa o bien se lo considera al número representado en sistema binario. Los sistemas digitales utilizan algunas formas de números binarios para su operación interna, pero el mundo externo es de naturaleza decimal. Esto significa que deben realizarse conversiones entre los sistemas decimal y binario, las cuales pueden ser largas y complicadas si se trabajan con números grandes. Por esta razón, surgió un sistema de codificación de números decimales, que combina algunas características de los sistemas decimal y binario. El Código BCD (Decimal Codificado en Binario), como su nombre lo indica, representa cada dígito decimal por su equivalente binario. Si tenemos en cuenta que un dígito decimal puede tomar como valor máximo 9, se necesitaran 4 bits para codificar cada dígito. La representación de un número en BCD se muestra en el siguiente ejemplo. 8 7 4 (decimal) 1000 0111 0100 (BCD) El código BCD, representa cada dígito del número decimal por medio de un número binario de cuatro bits. Por lo tanto, de las 16 combinaciones posibles solo utiliza diez las que van de 0000 a 1001, las no utilizadas son: 1010, 1011,1100, 1101, 1110 y 1111. 3.2.1 Comparación entre BCD y binario. Es muy importante comprender que el BCD no es otro sistema numérico como el binario, el octal, el decimal y el hexadecimal. Es, de hecho, el sistema decimal con cada dígito codificado en su equivalente binario. También es importante entender que un número en BCD no es lo mismo que un número binario directo. En Binario directo se toma el número decimal completo y se lo representa en binario, según las reglas de conversión descritas; el código BCD convierte cada dígito decimal en binario en forma individual. Para ilustrar lo anterior, tomemos el número 137 y comparemos sus representaciones en binario directo o binario natural y BCD: 9 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) 13710 = 100010012 13710 = 0001 0011 0111 (BCD) Representación de la Información (binario) En el ejemplo se observa que para representar el número 137 en BCD se emplearon 12 bits, mientras que en su representación binaria directa solo son 8 bits. El código BCD requiere más bits que el binario directo para representar números decimales de más de un dígito. Esto se debe a que el código BCD no utiliza todas las posibles combinaciones de 4 bits como se indico antes y, por tanto, es un poco ineficiente. La ventaja principal del código BCD es la relativa facilidad de conversión en, y de, decimal. Solo es necesario recordar los códigos binarios de cuatro bits de los primeros 10 dígitos. Esta facilidad de conversión es también importante desde el punto de vista del hardware, ya que en un sistema digital son los circuitos electrónicos los que efectúan las conversiones en, y de, decimal. El Código BCD sirve en máquinas digitales siempre que la información decimal se aplique como entradas o bien se exhiba como salidas. Los voltímetros digitales, los cronómetros digitales utilizan el BCD, debido a que exhiben la información de salida en decimal. El código BCD no se utiliza con mucha frecuencia en las computadoras digitales modernas de alta velocidad por dos razones fundamentales: Una es la indicada anteriormente, que se refiere a la necesidad del código BCD, de utilizar mayor cantidad de bits para representar un número, que en el sistema binario directo. Esto desde el punto de vista de la máquina representa mayor requerimiento de memoria y serán necesarias más instrucciones de CPU para realizar cualquier operación con el dato. La otra razón se debe a que los procesamientos aritméticos para números representados en código BCD son bastante más complicados que en binario directo y por lo tanto requieren de circuitos más complejos. Los circuitos más complejos contribuyen a una disminución de la velocidad a la cual se realizan las operaciones aritméticas. Por esta causa es que las calculadoras que utilizan el BCD son considerablemente más lentas en su operación que las computadoras. 3.3 Códigos Alfanuméricos. Para poder ser realmente útil, una computadora debe poder manejar no solo información numérica. En otras palabras, una computadora debe poder reconocer códigos que representen números, letras y caracteres especiales. Estos códigos se clasifican como códigos alfanuméricos. Un código alfanumérico debe tener, como mínimo, en su conjunto los elementos necesarios para representar: las 26 letras mayúsculas; las 26 letras minúsculas; las 10 cifras numéricas y cerca de 25 caracteres especiales, como +, #, %, &, etc. Esto da un total de 87 caracteres, y para obtener esta cantidad de combinaciones se necesitarán por lo menos 7 bits. El código alfanumérico más utilizado es el código ASCII. 3.3.1 EL código ASCII. Este es el código más conocido, su nombre es "American Standard Code for Information Interchange" (Código Estándar Americano para el Intercambio de Información), y es utilizado por la mayoría de los fabricantes de computadoras. Este sistema de codificación utiliza 7 bits para definir 128 códigos diferentes, el bit restante del byte correspondiente, es siempre 0 para los caracteres estándar, mientras que toma el valor 1 cuando se refiere a caracteres gráficos particulares de algunas máquinas. Cada uno de estos 128 códigos corresponde a una letra del alfabeto, a un número del 0 al 9, a un signo matemático o de puntuación y también representan códigos de control. La Tabla 3-2 especifica la tabla de caracteres ASCII expresada en decimal y hexadecimal. 10 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) 3.4 Representación de la Información Representación de Números 3.4.1 Representación de números con signo. Uno de los principales requerimientos en el trabajo con datos numéricos es que exista la posibilidad de que los números puedan ser distinguidos en positivos y negativos. Para ello existen trés sistemas de representación como veremos a continuación. A. Signo y Módulo En este sistema de representación, del total de bits disponibles para la codificación del número, se separa un bit (por convención el mas significativo), que representará el signo. El valor cero (0) de este bit, significará que el resto de los bits representan un número positivo. En caso de ser uno (1) implicará número negativo. En este sistema el rango de representación de números se ve disminuido con respecto a el rango de los números sin signo. Por ejemplo, para 4 bits rango sin signo 0 a 15 rango con signo -7 a 7 Ejemplos de representación: Número 5 0 | 101 Número -5 1 | 101 Inconveniente Número 0 | 000 +0 Número 1 | 000 -0 El 0 (cero) tiene dos representaciones!!! B. Complemento a 1 En este sistema los números positivos se codifican exactamente igual que en el método anterior. En cambio para los negativos se aplica la siguiente definición de complemento a 1: C1(N) = 2n - 1 - |N| Donde n es el número de bits utilizado para la codificación del número N. Por ejemplo, para 8 bits, N = 12 000011002 Entonces el número negativo, o sea el -12 será, N = -12 = C1(12) = 28 - 1 - |12| = 256 - 1 - |12| = 255 - |12| = 243 En binario será, N = -12 = C1(12) = 28 - 1 - |12| = 100000000 - 1 - 00001100 = 11111111 - 00001100 = 111100112 Observando este resultado concluimos que la forma mas rápida de obtener el complemento a 1 de un número cualquiera es complementar (todos los unos pasan a ceros y todos los ceros pasan a unos) bit a bit todo el número. Por ejemplo para N = 12 00001100 entonces 11110011 11 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información Inconveniente: si aplicamos el método de complementar bit-a-bit tenemos… Número 00000000 +0 Número 11111111 -0 El 0 (cero) tiene dos representaciones!!! Carácteres no imprimibles Carácteres imprimibles Nombre Dec Hex Car. Dec Hex Car. Dec Hex Car. Dec Hex Car. Nulo 0 00 NUL 32 20 Espacio 64 40 @ 96 60 ` Inicio de cabecera 1 01 SOH 33 21 ! 65 41 A 97 61 a Inicio de texto 2 02 STX 34 22 " 66 42 B 98 62 b Fin de texto 3 03 ETX 35 23 # 67 43 C 99 63 c Fin de transmisión 4 04 EOT 36 24 $ 68 44 D 100 64 d enquiry 5 05 ENQ 37 25 % 69 45 E 101 65 e acknowledge 6 06 ACK 38 26 & 70 46 F 102 66 f Campanilla (beep) 7 07 BEL 39 27 ' 71 47 G 103 67 g backspace 8 08 BS 40 28 ( 72 48 H 104 68 h Tabulador horizontal 9 09 HT 41 29 ) 73 49 I 105 69 i Salto de línea 10 0A LF 42 2A * 74 4A J 106 6A j Tabulador vertical 11 0B VT 43 2B + 75 4B K 107 6B k Salto de página 12 0C FF 44 2C , 76 4C L 108 6C l Retorno de carro 13 0D CR 45 2D 77 4D M 109 6D m Shift fuera 14 0E SO 46 2E . 78 4E N 110 6E n Shift dentro 15 0F SI 47 2F / 79 4F O 111 6F o Escape línea de datos 16 10 DLE 48 30 0 80 50 P 112 70 p Control dispositivo 1 17 11 DC1 49 31 1 81 51 Q 113 71 q Control dispositivo 2 18 12 DC2 50 32 2 82 52 R 114 72 r Control dispositivo 3 19 13 DC3 51 33 3 83 53 S 115 73 s Control dispositivo 4 20 14 DC4 52 34 4 84 54 T 116 74 t neg acknowledge 21 15 NAK 53 35 5 85 55 U 117 75 u Sincronismo 22 16 SYN 54 36 6 86 56 V 118 76 v Fin bloque transmitido 23 17 ETB 55 37 7 87 57 W 119 77 w Cancelar 24 18 CAN 56 38 8 88 58 X 120 78 x Fin medio 25 19 EM 57 39 9 89 59 Y 121 79 y Sustituto 26 1A SUB 58 3A : 90 5A Z 122 7A z Escape 27 1B ESC 59 3B ; 91 5B [ 123 7B { Separador archivos 28 1C FS 60 3C < 92 5C \ 124 7C | Separador grupos 29 1D GS 61 3D = 93 5D ] 125 7D } Separador registros 30 1E RS 62 3E > 94 5E ^ 126 7E ~ Separador unidades 31 1F US 63 3F ? 95 5F _ 127 7F DEL Tabla 3-2 Código ASCII estándar 12 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información C. Complemento a 2 Al igual que en los dos métodos anteriores , la representación de los números positivos es la misma. Para los números negativos se aplica la definición de complemento a 2, C2(N) = 2n - |N| = C1(N) + 1 Donde n es el número de bits utilizado para la codificación del número N. Por ejemplo, para 8 bits, N = 12 000011002 Entonces el número negativo, o sea el -12 será, N = -12 = C2(12) = 28 - |12| = 256 - |12| = 244 En binario será, N = -12 = C2(12) = 28 - |12| = 100000000 - 00001100 = 111101002 3.4.2 Simple precisión, doble precisión. La longitud de palabra de un dato que puede tratar un computador es algunas veces insuficiente para la precisión que se necesita. En este caso, se recurre a más de un palabra para representarlo. Se le denomina doble precisión, si se utilizan dos palabras, triple precisión si se utilizan tres, etc. 3.4.3 Representación Coma Fija y Coma Flotante Se utilizan dos formas principales de representación de la coma (punto) de un número decimal: el modo de coma fija, llamado así porque la coma es colocada arbitrariamente por el programador en cualquier lugar, y el modo de coma flotante, donde su ubicación está definida por un exponente. A. Coma Fija (Punto Fijo) Según vimos, la cantidad de bit que puede tratar un procesador en paralelo es una de las características del mismo, y es así que tenemos palabras datos de 1, 4, 8, 16, 32 bits, etc. Estas cantidades de bits nos limita el máximo número a representar, el que aún queda reducido si se debe representar el signo. Si además hay que separar lugares para la parte fraccionaria, la forma se reduciría por ejemplo a : 10110 .011 | posición arbitraria de la coma B. Coma Flotante (Punto Flotante) La forma de representación general es: N = M * BE donde : N = número a representar M = mantisa B = base E = exponente 13 COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO) Representación de la Información Inclusive puede adicionarse el signo tanto en la mantisa como en el exponente. N = S1. M * BS2.E Por ejemplo, para una palabra de 8 bit, si se utilizan 4 para la mantisa y 4 para el exponente, con una base binaria, obtenemos como número máximo: 15 * 215 = 491.52010 mientras que con coma fija, y con el mismo formato para la parte entera que para la decimal, solo se podría codificar hasta el (15,93). La mantisa define la precisión, mientras que el exponente especifica el rango del número. El número de bits para la mantisa es justamente fijado de acuerdo a la precisión requerida. Este sistema permite aumentar la exactitud de los cálculos pues se logra un uso más racional de los registros y es menos frecuente el desborde (Overflow). Las desventajas están en la relativa complejidad de la adición pues hay que igualar los exponentes. Por su parte el método de coma fija, tiene la ventaja de que si fijamos los operandos entre (-1; +1), el producto también estará en ese rango y no hará falta modificar el posible factor de escala. Como desventaja, la programación es más complicada, por que si los dos factores son pequeños el error de redondeo (round off) puede ser tan grande que requerirá de una programación especial para reducirlo. En aplicaciones de control, puesto que el programa se desarrolla una sola vez, y queda fijo en la computadora, es viable el punto fijo que simplifica el hardware, siempre que sea posible pues existen casos en que la precisión y los rangos de los números no lo permiten. Con el advenimiento de los coprocesadores o procesadores aritméticos se minimiza el problema del punto flotante, ya que estos permiten trabajar en esta forma con una capacidad de por ej. 80 bit y realizar operaciones, no solo aritméticas sino también trigonométricas. 14