TEMA 1. APUNTES DE CLASE DE TECNOLOGÍA DE COMPUTADORES. CURSO 20003/04 TEMA 1: INTRODUCCIÓN A LOS SISTEMAS DIGITALES. 1.1. Sistemas Analógicos y Digitales. Magnitud analógica es aquélla que puede tomar cualquier valor real dentro de un margen determinado de forma continua. Ej: la temperatura en la habitación: ---x----x----------------------x------ T 20 21.5 30 Ej: velocidad de un coche: 72,3 Km/h. Ej: Estatura de una persona: 1,83 m. 2 Ej: Cantidad de lluvia caida: 13,2 l/m . El mundo es analógico, esencialmente. Magnitud digital es aquélla que sólo puede tomar un valor dentro de un conjunto finito de valores prestablecidos. Ej: el grupo al que pertenece un alumno de 1º: 1º A, 1º B, 1º C, 1º D. Ej: la carrera universitaria elegida (DERECHO, INGENIERIA, MEDICINA). Ej: los meses del año (ENERO, FEBRERO, ... DICIEMBRE). Magnitud digital binaria es aquélla que sólo puede tomar un valor dentro de un conjunto de 2 valores posibles. Ej: cualquier pregunta cuya respuesta sea: SI,NO. Todas ellas son fácilmente asimilables a SI/NO, Verdadero/Falso, Todo/Nada, 0/1. Toda la informática se basa en magnitudes digitales binarias. Se trabaja con los dos estados de una magnitud binaria, representados habitualmente como 0, 1, y físicamente representados por dos niveles de tensión distintos (pueden ser 0 V y 5 V). ¿Por qué 2 niveles y no más? Porque tecnológicamente es muy fácil fabricar dispositivos que presenten dos estados bien diferenciados, y no es tan fácil si el número de estados es mayor. Existe una herramienta matemática muy sencilla y adecuada para representar y procesar la información: la lógica binaria. COMPARACION: Ventajas Digitales / Inconvenientes Analógicos. Mayor inmunidad al ruido. Sencillez y economía al manejar pocos valores. Seguridad y precisión. Facilidad de almacenamiento. Ventajas Analógicos / Inconvenientes Digitales. El mundo real es ANALOGICO (CONVERSION A/D). 1.2. Sistema de Numeración Binario. Base 10 (decimal). 2 1 0 432 = 4⋅10 +3⋅10 +2⋅10 [0,1,....9] 1 TEMA 1. APUNTES DE CLASE DE TECNOLOGÍA DE COMPUTADORES. CURSO 20003/04 Especial interés. Base 2 (binaria). 3 2 1 0 1001 = 1⋅2 +0⋅2 +0⋅2 +1⋅2 = 9 [0,1] Base 8 (octal) [0,1,...7] Base 16 (hexadecimal) [0,1,... 9, A, B, C, D, E, F] 1 0 Ej: 4DH=4D(16 = 4⋅16 +13⋅16 = 77 Si hay decimales, se usan las potencias negativas: 1 0 -1 Ej: 54,3(8 = 5⋅8 +4⋅8 +3⋅8 = 44,375 El paso de cualquier base a decimal es el ya visto. Vamos a ver el contrario. Poner 12 en base 8. Se puede hacer de dos formas. Primera forma. Haciendo la tabla a mano: Decimal Octal 00 00 01 01 02 02 03 03 04 04 05 05 06 06 07 07 08 10 09 11 10 12 11 13 12 14 13 15 Segunda forma. Si dividimos 12 entre 8 sale un cociente y un resto. Teniendo en cuenta que en una división Dividendo= Divisor * Cociente+ Re sto queda 12 8 Es decir 12 = 8*1 + 4 4 1 o bien 12 = 1 * 81 + 4 * 8 0 Los coeficientes que acompañan a las potencias de 8 son 1 y 4, precisamente el último cociente menor que la base (en este caso 8) y los restos (en este caso sólo 1) en orden contrario a cómo aparecieron. Otro ejemplo: expresar 92 en base 8 92 8 Es decir 92 = 8*11 + 4, pero a su vez 11 se puede poner 4 11 8 como 11 = 8*1 + 3, con lo cual 92 se puede expresar 3 1 como 92 = 8*[8*1 + 3] + 4 = 1*8 + 3*8 + 4*8 . 2 1 0 Es decir 92 en octal se expresaría como 134, que coincide con la lectura del último cociente y los restos de las operaciones en sentido contrario al de aparición. Esta es la forma general de cambiar de base, en particular para base 2. Ejemplo: 120 = 111100002. Se debe observar que en base 2 cada 1 contribuye con importancia doble que se vecino de la derecha. Cada uno contribuye con una importancia que es una potencia de 2. Por tanto, otra forma de expresar un número en binario consiste en descomponerlo como suma de potencias de 2 y poner 1 en los lugares correspondientes. El 120 = 64+32+16+8. Para ello 120-64=56, 56-32=24, 24-16=8. Los cambios entre las bases 2, 8 y 16 son inmediatos, sin necesidad de pasar por base 10. Base 2 a 8 y viceversa. Agrupaciones de 3 <=====> carácter octal. Base 2 a 16 y viceversa. Agrupaciones de 4 <=====> carácter hexadecimal. 2 TEMA 1. APUNTES DE CLASE DE TECNOLOGÍA DE COMPUTADORES. CURSO 20003/04 Ejemplos: 564(8= 101 110 100(2 , 92ª(16= 1001 0010 0110(2, 010 101 001(2=451(8 0001 0100 1011(2=14B (16 Una forma especialmente rápida de pasar un número a binario es mediante el paso intermedio por hexadecimal. Ej: 179 = B3(16 = 10110011(2. Con decimales: Entre bases 2, 8 y 16 es directo. Ej: 110,101(2 = 6,5(8 De base 10 a cualquier base se hace así: Ejemplo: Pasar 13,2 a octal. 13,2 = 13+0,2. 0,2x8=1,6; 0,6x8=4,8; 0,8x8=6,6 etc... 13,2=15,146... en octal Otro ejemplo: Pasar 25,4 a binario: 25=11001(2 0,4x2=0,8; 0,2x2=0,4 0,8x2=1,6 0,6x2=1,2 0,4x2=0,8 y se repite. 25,4 = 11001,0110 0110 0110 0110. n La multiplicación y división rápidas por 2 en binario. Para multiplicar un número binario por 2, se desplaza una posición a la izquierda, rellenando con ceros la derecha. n Para multiplicar un número binario por 2 , se desplaza “n” posiciones a la izquierda, rellenando con ceros la derecha. Para dividir un número binario por 2, se desplaza una posición a la derecha, pasando la unidad a la derecha de la coma. n Para dividir un número binario por 2 , se desplaza “n” posiciones a la derecha, pasando “n” bits a la derecha de la coma. Suma en binario (tabla de sumar): C0 a b | a+b C1 ---------+--------0 0 0 | 0 0 0 0 1 | 1 0 0 1 0 | 1 0 0 1 1 | 0 1 1 0 0 | 1 0 1 0 1 | 0 1 1 1 0 | 0 1 1 1 1 | 1 1 Ejemplo: 7 + 5 = 12 7: 5: 12: 0 1 1 1 0 1 0 1 + ----------1 1 0 0 Las operaciones dan el mismo resultado independientemente de la base. A cada uno de los 0, 1 se les llama dígito binario (BINARY DIGIT). BIT. n Con n bits se pueden representar 2 números distintos. Ejemplo n = 3. n-1 000, 001, 010, 011, 100, 101, 110, 111 que representan de 0 a 7. Desde 0 hasta 2 . Si queremos signo hace falta un bit más o sacrificar un bit en detrimento del margen de representación. Se llama bit más significativo, también conocido por las iniciales inglesas MSB (Most Significative Bit) al bit de mayor peso, el colocado a la izquierda, de un número binario. 3 TEMA 1. APUNTES DE CLASE DE TECNOLOGÍA DE COMPUTADORES. CURSO 20003/04 Se llama bit menos significativo, también conocido por las iniciales inglesas LSB (Least Significative Bit) al bit de menor peso, el colocado a la derecha, de un número binario. Ejemplo: 100110 00 1 LSB MSB 1.3. Representación de números enteros. a) Signo magnitud: Margen de representación <----- n bits -----> +------------------+ Positivos|0| Valor absoluto | +------------------+ S Desde -(2 n-1 -1) hasta +(2 n-1 -1) +------------------+ El 0 tiene doble representación Negativos|1| Valor absoluto | +------------------+ Ej: n=4, desde -7 hasta +7, pasando doble 0. S b) Complemento a 1: Margen de representación <----- n bits -----> +------------------+ Positivos|0| Valor absoluto | +------------------+ S Desde -(2 n-1 -1) hasta +(2 n-1 -1) +------------------+ El 0 tiene doble representación Negativos|1| Cambiar 0x1,1x0| +------------------+ Ej: n=4, desde -7 hasta +7, pasando doble 0. S c) Complemento a 2: Margen de representación <----- n bits -----> +------------------+ Positivos|0| Valor absoluto | +------------------+ S Desde -(2 n-1 ) hasta +(2 n-1 -1) +------------------+ El 0 tiene representación simple. Negativos|1| Complem a 1+1 | +------------------+ Ej: n=4, desde -8 hasta +7, pasando simple 0. S Ej: poner -5 en complemento a 2. ca1 +5: 0101 -------> ca2 1010 ---------> 1011. Como empieza por 1 es NEGATIVO. La operación de complemento a 2 es reversible, es decir el ca2 de 1011 es: 0100 + 1 = 0101 Decimal +7 +6 +5 +4 +3 +2 +1 0 0 -1 Signo-Magnitud 0111 0110 0101 0100 0011 0010 0001 0000 1000 1001 Complemento a 1 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 Complemento a 2 0111 0110 0101 0100 0011 0010 0001 0000 ---1111 4 TEMA 1. APUNTES DE CLASE DE TECNOLOGÍA DE COMPUTADORES. CURSO 20003/04 -2 -3 -4 -5 -6 -7 -8 1010 1011 1100 1101 1110 1111 ---- 1101 1100 1011 1010 1001 1000 ---- 1110 1101 1100 1011 1010 1001 1000 Para restar, se hace la suma del minuendo con el ca2 del sustraendo. Casos posibles. Ejemplos 1º caso: resultado positivo correcto. 7-5=+7+(-5) 0111 1011 + -----0010 +7 -5 +2 2º caso: resultado negativo correcto. 5-7=+5+(-7) 0101 1001 + -----1110 +5 -7 -2 3º caso: resultado positivo con desbordamiento (OVERFLOW). 7+5=12 0111 0101 + -----1100 +7 +5 FALSO, bit de signo - 4º Caso: resultado negativo con desbordamiento (OVERFLOW). -7-5 = -7+(-5) 1001 1011 + -----0100 -7 -5 FALSO, bit de signo + Veamos cómo en los dos últimos casos con 1 bit más no se produce desbordamiento 3º caso: resultado positivo sin desbordamiento. 7+5=12 00111 00101 + -----01100 +7 +5 +12 CORRECTO 4º caso: resultado negativo sin desbordamiento. -7-5 = -7+(-5) 11001 11011 + -----110100 -7 -5 -12 CORRECTO 1.4. Códigos más usuales. BINARIO: Simplemente pasar a base 2. BCD natural o simplemente BCD: Binary Coded Decimal. Decimal codificado en binario. Igual que en binario pero sólo con los 10 dígitos decimales (desde 0 hasta 9, ambos incluidos). Relación de pesos 8 4 2 1 (ponderado). BCD exceso 3: un número en BCD exceso 3 se representa igual que dicho número más 3 en BCD (no es ponderado). Autocomplementario. El código de N es el ca1 del código de 9-N. Ejemplo, el código de 3 es el 5 TEMA 1. APUNTES DE CLASE DE TECNOLOGÍA DE COMPUTADORES. CURSO 20003/04 complemento a 1 del código de 9 – 3 = 6. BCD Aiken: La relación de pesos no es 8 4 2 1 como en BCD natural, sino 2 4 2 1 (ponderado). Autocomplementario. Se pueden definir códigos BCD con otra relación de pesos distinta, incluso de pesos negativos. GRAY: Entre dos códigos consecutivos sólo hay un bit de diferencia, considerando el primero (0000) y el último (1000) como consecutivos también. Código reflejado. La 2º mitad es la imagen especular de la primera, cambiando el primer bit. Se genera a partir del binario poniendo el MSB igual y los restantes bits con el siguiente criterio: si no hay cambio de bit se pone un 0 y si hay cambio de bit se pone un 1. Ejemplo, 4 == 0100 en binario y 4 == 0110 en GRAY. JOHNSON 5 bits: va aumentando el número de unos desde la derecha, y posteriormente disminuye por la izquierda (no es ponderado). Decimal BINARIO BCD BCD natural exceso 3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 NO NO NO NO NO NO 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 NO NO NO NO NO NO BCD Aiken GRAY JOHNSON 5 bits 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111 NO NO NO NO NO NO 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 00000 00001 00011 00111 01111 11111 11110 11100 11000 10000 NO NO NO NO NO NO 6