Representación de la Información en un computador Ingeniería de Sistema y Automática Universidad de Valladolid
Índice Sistemas de numeración: Binarios Octales Hexadecimales Operaciones. Transformaciones Códigos de Entrada/Salida Representación interna de la información Números enteros Números reales. Circuitos lógicos y Álgebra de Boole Álgebra de Boole Funciones de conmutación
Sistema de numeración Sistema de numeración en base b => alfabeto formado por b símbolos. Cada cifra contribuye: La Cifra en sí La posición dentro del número Ejemplo: sistema de numeración decimal: b=10 => {0,1,2,3,4,5,6,7,8,9} 4518.31=4*10 3 +5*10 2 +1*10 1 +8*10 0 + 3*10-1 +1*10-2 N=...n 4 n 3 n 3 n 1 n 0.n -1 n -2 n -3... N=... n 4 b 4 + n 3 b 3 +n 2 b 2 + n 1 b 1 + n 0 b 0 + n -1 b -1 +...
Sistema binario b = 2 => {0,1} Binario Decimal 10100.001) 2 = 1*2 4 + 0*2 3 + 1*2 2 + 1*2-3 =20.125) 10 Decimal Binario Parte entera se divide entre 2 Parte decimal se multiplica por 2 Ejemplo: 26.1875) 10 = 11010.0011) 2
Sistema binario Operaciones aritméticas: Suma Resta a b a - b 0 0 0 0 1 1 y me llevo 1 1 0 1 1 1 0 a b a + b 0 0 0 0 1 1 1 0 1 1 1 0 y me llevo 1
Sistema binario Operaciones aritméticas Multiplicación División. a b a * b 0 0 0 0 1 0 1 0 0 1 1 1 a b a / b 0 0 Indeterminado 0 1 0 1 0 1 1 1
Sistema binario Operaciones lógicas OR AND NOT a b a OR b 0 0 0 0 1 1 1 0 1 1 1 1 a b a AND b 0 0 0 0 1 0 1 0 0 1 1 1 a NOT a 0 1 1 0
Sistema binario Representación en complementos Complemento a la base menos uno de un nº N es el nº que resulta de restar cada una de las cifras de N de la base menos uno del sistema de numeración utilizado: Base 10 => C 9 Ejemplo: C 9 63 = 99-63 = 36 Base 2 => C 1 Ejemplo: C 1 10010 = 11111-10010 = 01101 C 1 => cambiar los ceros por los unos y los unos por los ceros
Sistema binario Sirve para realizar las restas como sumas. Ejemplo: 77 63 = 14 77 + 36 = 113+ 1 = 14 C 9 63 Ejemplo: 1000111 10010 = 0110101 1000111 + 1101101 = 10110100 + 1 = 0110101 C 1 10010
Sistema binario Complemento a la base de un nº N, es el nº que resulta de restar cada una de las cifras de N de la base menos uno del sistema de numeración utilizado, y sumar 1 a la diferencia obtenida. Base 10 => C 10 Ejemplo: C 10 63 = 99-63 = 36 +1 = 37 Base 2 => C 2 Ejemplo: C 2 10010 = 11111 10010 = 01101+1 = 01110
Sistema binario Sirve para convertir las restas en sumas: Ejemplo: 77 63 = 14 77 + 37 = 114 C 10 63 Ejemplo: 11001 10010 = 00111 11001 + 01110 = 1 00111 C 2 10010
Sistema octal b = 8 = 2 3 Alfabeto: {0,1,2,3,4,5,6,7} Binario Octal 10 001 101 100.100 10) 2 = 2154.64) 8 2 1 5 4 6 4 Octal Binario 537.24) 8 = 101 011 111. 010 100) 2 Octal Decimal 1367.25) 8 = 1 8 3 + 3 8 2 + 6 8 1 + 7 8 0 + 2 8-1 + 5 8-2 = 759.328125) 10
Sistema octal Decimal Octal Parte entera se divide por 8 Parte decimal se multiplica por 8 y sólo nos quedamos con la parte entera. Ejemplo: 760.33) 10 =1370.2507) 8 Tabla: Binario Octal 000 0 001 1 010 2 011 3 Binario Octal 100 4 101 5 110 6 111 7
Sistema hexadecimal b = 16 = 2 4 => Abecedario: {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} Binario Hexadecimal 010 0101 1101 1111. 1010 101) 2 = 25DF.BA) H 2 5 D F B A Hexadecimal Binario 1ABC701.C4) H = 0001 1010 1011 1100 0111 0000 0001. 1100 0100) 2
Sistema hexadecimal Hexadecimal Decimal A798C.1E) H = 10 * 16 4 + 7 * 16 3 + 9 * 16 2 + 8 * 16 1 + 12 * 16 0 + 1 * 16-1 + 14 * 16-2 = 686476.1171) 10 Binario Hexadecimal Parte entera se divide por 16 Parte decimal se multiplica por 16 y nos quedamos sólo con la parte entera de cada multiplicación. Ejemplo:4373.79) 10 = 11DD.CA3D) H
Sistema hexadecimal Binario 0000 0 0 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 Binario Decimal Hexadecimal Decimal Hexadecimal 1000 8 8 1001 9 9 1010 10 A 1011 11 B 1100 12 C 1101 13 D 1110 14 E 1111 15 F
Códigos de Entrada/Salida (E/S) Código E/S: es una correspondencia biunívoca entre dos conjuntos Caracteres combinación de bits α ={0,...,9,A,,...,Z,a,...,z, ;,:,...} β = {0, 1} n donde n es el nº de bits Si n=2 4 combinaciones Si n=3 8 combinaciones Si n=n m= 2 n combinaciones Por el contrario, si queremos representar m símbolos cuántos bits necesitamos? m = 2 n => n log 2 m
Códigos de Entrada/Salida (E/S) Código BCD (intercambio normalizado), tiene n=6 bits => m=2 6 = 64 símbolos Código EBCDIC con n=8 Código ASCII (American Standard Code for Information Interchange) n=7 bits Eficiencia de un código: τ = 0 τ 1 Ejemplo: ASCII para representar 95 símbolos: τ = 95 / 2 7 = 0.742 Redundancia: R = (1 - τ)* 100% Ejemplo: R=(1-0.742)*100 = 25.8% m 2 n
Códigos de Entrada/Salida (E/S) Un código poco eficiente es redundante Redundancia es útil para detectar errores Dos criterios: Bit de paridad par: se añade un bit para que el número total de 1 sea par. Bit de paridad impar: se añade un bit para que el número total de 1 sea impar. 100 0001 0100 0001 (par) 101 1011 1101 1011 (par) 000 0000 1000 0000 (impar) 110 1000 0110 1000 (impar)
Representación interna de la información En la memoria y en la CPU la información se transmite y almacena en palabras. La longitud de palabra debe ser múltiplo entero del nº de bits utilizados para representar un carácter (8,16,32 o 64 bits) Los datos se introducen según un código E/S 253) 10 = 1011 0010 0011 0101 0011 0011) ASCII 253) 10 = 11111101) 2 El computador realiza una conversión del código de E/S a una representación interna.
Representación interna de la información Números enteros: Varias formas: Sin signo: en base 2 => 18) 10 = 0001 0010) 2 Con signo: Signo y magnitud: en el bit más significativo (MSB) se pone el signo (0 para positivos y 1 para negativos) y luego el número en binario. Complemento a 1: en el MSB se pone el signo, y luego el número en complemento a 1, para negativos, y en binario natural para positivos. Complemento a 2: en el MSB se pone el signo, y luego el número en complemento a 2 para negativos y en binario natural para positivos.
Representación interna de la información Ejemplo: N = -3675 con n=16 bits. 3675) 10 = 1110 0101 1011) 2 3675) 10 = 0000 1110 0101 1011) 2 con 16 bits Sin signo => 0000 1110 0101 1011 Con signo: Signo y magnitud => 1000 1110 0101 1011 Complemento a 1 => 1111 0001 1010 0100 Complemento a 2 => 1111 0001 1010 0101
Representación interna de la información Números reales: Notación científica => N = M B E Normalización IEEE754 B=2 predeterminado El nº se representa como : s e m s: campo del signo => 1bit: 0 si el nº es positivo, 1 si es negativo e: campo del exponente => ne bits: se representa como el exponente + el sesgo => E+S donde S = 2 ne-1 1; m: campo de la mantisa => nm bits que se calculan como => n= 1 + ne + nm, con n el nº total de bits para representar el número.
Representación interna de la información La mantisa tiene que estar normalizada: 1.00110 2 E y el primer 1 no se almacena. Ejemplo: N = -37.48 n=16 bits y ne=8. 37.48) 10 = 111101.01111010 ) 2 Normalizar el número y ponerle de forma exponencial: 1.1110101111010 2 5 Signo: 1 => número negativo Exponente: e = E+S = 5 + 2 8-1 1 = 132) 10 = 11000100) 2 Mantisa: nm=16-1-8= 7 => m=1110101 N = 1 1100100 1110101 => s e m
Representación interna de la información Situaciones especiales: Cuando e=0, la mantisa se almacena desnormalizada y el valor de E = e 2 ne-1 +2 El número N=0, se representa con todos los bits del exponente y la mantisa a 0 Si todos los bits del exponente son 1 Si m=0 => representa ± Si m 0 => representa un NaN (valores no válidos) Precisión: Simple: n=32 bits, ne=8 Doble: n=64 bits, ne=11
Circuitos lógicos y Algebra de Boole Sistemas: Analógicos: variables continuas (Tª, presión...) Digitales: un dispositivo destinado a la generación y/o transmisión y/o procesamiento y/o almacenamiento de la información, la cual está representada por variables físicas limitadas a tener valores discretos. Sistema digital con sólo dos valores discretos se llama sistema binario. Sistema digital se puede representar como: Bloque con entradas y salidas Tabla de verdad
Algebra de Boole Herramienta matemática para el análisis y síntesis de sistemas digitales Postulados: Conjunto de elementos, B / x,y B / x y Leyes de composición interna: x, y B x.y B y x+y B Elementos neutros únicos: 0 B / x B x + 0 = 0 + x = x 1 B / x B x. 1 = 1. x = x Conmutatividad: x, y B x + y = y + x ; x. y = y. x
Algebra de Boole Distributividad: x, y, z B x + ( y + z) = (y+x). (x+z) ; x. (y + z) = (x. y) + (x. z) Asociatividad: x, y, z B x + (y+z) = (y + x)+z = x+y+z; x. (y. z) = (x. y). z = x. y. Z Elemento opuesto (complementó) único x B x B / x + x =1; x. x = 0 Ejemplos de Algebra de Boole: B={0, 1} con las operaciones AND, OR y NOT B = conjuntos, con la y la
Funciones de conmutación Una variable de conmutación es símbolo que sólo puede tomar el valor 1 o el 0. Función de conmutación f(x 1, x 2,...,x n ) es una aplicación: f {0, 1} n {0,1} Se puede representar: Tabla de verdad Explicitamente: f(x,y,z) = x. (y+z) + y.z Ejemplo: f(0,0,0) =0, f (010) = 0...
Funciones de conmutación Algebra de conmutación, es una álgebra de Boole con los siguientes elementos: Relación de igualdad: dos funciones son iguales si lo son sus tablas de verdad. Operación Y (.) Operación O (+) Complemento Y 0 1 0 0 0 1 0 1 O 0 1 0 0 1 1 1 1-0 1 1 0
Funciones de conmutación Elemento 0 => función {0,1} n 0 Elemento 1 => función: {0,1} n 1 Minterms: es una función que asigna un 1 a una combinación de entradas y 0 a todas las demás. Toda función de conmutación de n variables se puede poner como una suma única de minterms. (aparece un minterm por cada 1 que aparezca en la tabla de verdad de la función)
Funciones de conmutación x 1 x 2 x 3 m 0 m 3 m 6 minterms f1 f2 0 0 0 1 0 0 x x 0 0 1 2 x3 0 0 1 0 0 0 x1x2x3 0 1 0 1 0 0 0 0 x1x2 x3 0 1 0 1 1 0 1 0 x1x2x3 1 0 1 0 0 0 0 0 x x 1 0 1 2 x3 1 0 1 0 0 0 x x 1 0 1 2x3 1 1 0 0 0 1 x1x2 x3 1 0 1 1 1 0 0 0 x1x2x3 0 1 f 1 = x1x2x3 + x1x2 x3 + 1x2x3 + f 2 = x1x2x + 1x x3 + 3 x x 2 1x2x3 x x1x2 x3
Funciones de conmutación Maxterms:es una función que asigna un 0 a una combinación de entradas y 1 a todas las demás. Toda función de conmutación de n variables se puede poner como un producto único de maxterms. (Hay un maxterm por cada 0 que aparezca en la tabla de verdad de la función)
Funciones de conmutación x 1 x 2 x 3 M 0 M 3 M 6 Maxterms f1 f2 0 0 0 0 1 1 x 1 + x 2 + x 3 0 0 0 0 1 1 1 1 x 1 + x 2 + 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 x 1 + x 2 + x 3 x 1 + x2 + x3 x 1 + x2 + x3 x 1 + x2 + x3 0 1 1 1 1 0 0 0 1 1 0 1 1 0 x + x + 1 0 1 1 1 1 1 1 x + x + 0 1 x 3 1 2 x3 1 2 x3 f 1 = ( x + x + x ) * (x + x + x3) * (x + x2 + x ) * (x1 + x2 x3 ) 1 2 3 1 2 1 3 + f 2 = ( x1 + x2 + x3) * (x1 + x2 + x3) * (x1 + x2 + x3) * (x1 + x2 + x3) * (x1 + x2 + x3)
Funciones de conmutación Circuito lógico: dos posibilidades x 1 x 1 x 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3 f 1 x 2 x 3 x x 1 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3 f 1