410 likes | 530 Views
Curso Circuitos Digitales I Sesión 2. Prof. José Edinson Aedo Cobo, Msc. Dr. Eng . E-mail: joseaedo@udea.edu.co Departamento de Ingeniería Electrónica Grupo de Microelectrónica - Control Universidad de Antioquia. Sistemas numéricos y métodos de conversión.
E N D
Curso Circuitos Digitales ISesión 2 Prof. José Edinson Aedo Cobo, Msc. Dr. Eng. E-mail: joseaedo@udea.edu.co Departamento de Ingeniería Electrónica Grupo de Microelectrónica - Control Universidad de Antioquia
Sistemas numéricos y métodos de conversión El sistema posicional (para expresar cantidades) Sistema decimal (base 10, se utilizan 10 símbolos: 0..9): ejemplo el número 953.78 (953.78)10= 9 x102 + 5 x101 + 3 x100 + 7 x10-1 + 8 x10-2 Sistema binario (base 2): ejemplo el número 1011.11 (1011.11)2= 1 x23 + 0 x22 + 1 x21 + 1 x20 + 1 x2-1 + 1 x2-2 = 8 + 0 + 2 + 1 + 0,5 + 0,25 = (11.75)10 Se emplean 2 dígitos (símbolos): 0,1 ( # símbolos = Base)
Sistemas numéricos y métodos de conversión Generalización del sistema posicional: Sistema en base r : Se deben usar r símbolos o coeficientes. Sea el número (a4a3a2a1a0.a-1a-2a-3) en base r: (a4a3a2a1a0.a-1a-2)r = a4 x r4+ a3 x r3+ a2 x r2+ a1 x r1+ a0 x r0+ a-1 x r-1+ a-2x r-2 ai son los coeficientes (dígitos) donde 0≤ ai≤ r-1
Sistemas numéricos y métodos de conversión Ejemplos: sistema en base ocho (octal): Símbolos: 0,1,2,3,4,5,6,7 Ejemplo (147.3)8 (147.3)8 = 1 x82 + 4 x81 + 7 x80 + 3 x8-1 = 64 + 32 + 7 + 3/8 = 103.37510
Sistemas numéricos y métodos de conversión Ejemplos: sistema hexadecimal (base 16): Símbolos (16): 0,1,2,3,4,5,6,7, 8, 9, A, B, C, D, E, F Ejemplo (A2F)16 para encontrar el equivalente en el sistema decimal los símbolos deben expresarse en el sistema decimal, luego considerando: A = 10, B= 11, C= 12, D=13, E= 14, F=15 tenemos: (A2F)16 = 10 x162 + 2 x161 + 15 x160 = 2560 + 32 + 15 = 260710
Taller en clase (40 minutos) • Procedimientos para realizar las operaciones suma, resta, multiplicación y división de números en los siguientes sistemas: • Binario • Octal • Hexadecimal • Siguiendo el material suministrado establezca los procedimientos • Para realizar las operaciones. Revisar los ejemplos suministrados para cada caso. • Nota: considere las tablas de multiplicar suministradas para el • sistema octal y hexadecimal en los ejercicios de • multiplicación.
Representación de números con signo La forma más simple: Utilizar un digito llamado dígito de signo Se puede escribir el número con signo en el formato de magnitud y signo (sm) en la base r, de la siguiente forma: Ejemplo: N= -(13)10 sería (1, 1101)2sm y (9, 13)10sm S Representación de la magnitud Dígito de signo s= 0 si N es positivo N= (san-1 ….a0.a-1 a-2..a-m)rsm s= r si N es negativo
Sistemas numéricos complementarios • Son útiles para realizar operaciones con números con signo. • Tipos de sistemas numéricos: • Complemento a una base (r): [N]r de un número (N)r se calcula: • [N]r = rn-(N)r • El número positivo más grande (escala positiva total) = rn-1-1 • El número negativo más pequeño (escala total negativa)=-rn-1 • Ejemplo: • Sea (N)2= (01100101)2 (r =2 y n= 8) [01100101]2 = ? n: número de dígitos r : es la base
Sistemas numéricos complementarios Ejemplo (solución): [01100101]2 = 28 – (01100101)2 = (100000000)2 – (01100101)2 = (10011011)2 Nótese: 28 = (100000000)2 dígito adicional8 dígitos 8 dígitos Luego: [N]2 + (N)2 = 2n – (N)2 + (N)2 = 0 (n dígitos) + (acarreo) [N]2 + (N)2 = 0 o sea que [N]2 = -(N)2 [N]2 se puede usar para representar números negativos !!
Sistemas numéricos complementarios Ejemplo: sea (N)2= (11010100)2 [N]2 = 28 – (11010100)2 = (100000000)2 – (11010100)2 = (00101100)2 Ahora: (N)2 + [N]2 = 0 11010100 + 00101100 1 00000000 Nótese que: [[N]2]2 = (N)2 Verificarlo ! acarreo
Sistemas numéricos complementarios Ejercicio: Determinar el complemento a dos de: (N)2 = (10110)2 para n = 8 Ejercicio: Determinar el complemento a 10 de (40960)10
Algoritmos para calcular [N]r a partir de (N)r Algoritmo 1: 1. A partir de dígito menos significativo se copian los dígitos de (N)r hasta encontrar el primer digito i distinto de cero ese dígito se reemplaza por r - ai A partir de esa posición los dígitos aj siguientes se remplazan por (r-1) – aj hasta llegar el dígito más significativo Algoritmo 2: Reemplazar cada dígito de aK de (N)r por (r-1)-ak Sumarle 1 al resultado
Algoritmos para calcular [N]r a partir de (N)r Ejercicio: Encontrar el complemento a 2 de (11010100)2 Nótese que r-1 = 2-1 =1 Algoritmo 1 Algoritmo 2 1 (-----100) (00101011) + 1 2 (00101100) (00101100)
Algoritmos para calcular [N]r a partir de (N)r Ejercicios: 1. Encontrar el complemento a 10 de (40960)10 2. Encontrar el complemento a 2 de (1100101)2
Sistema numérico de complemento a 2 • Los números positivos se representa por magnitud y signo ( se utiliza el bit 0 a la izquierda para representar el signo positivo). • Los números negativos se representan con el complemento a 2 del número positivo correspondiente. • Notación: (N)2cns • De esta manera: • N= +(an-2 ….a0) =(0, an-2 ….a0 )2cns Con 0≤ N ≤ 2n-1 -1 • Si N = (an-1 ….a0) -N se representa por el complemento a 2 • de N o sea [N]2 con -1 ≥ - N ≥ - 2n-1
Sistema numérico de complemento a 2 Ejemplos: Dado (N)2 = (1100101)2 determinar +(N) y –(N) con n= 8. El caso positivo: +(N)2 = (0, 1100101)2cns El caso negativo: -(N)2 =[0, 1100101]2 = (1, 0011011)2cns se utiliza una coma para identificar el bit de signo
Sistema numérico de complemento a 2 • Ejercicios: • Determinar el complemento a 2 de +-(110101)2 para n=8. • Determinar el complemento a 2 de –(13)10 • Determinar el numero decimal representado por N=(1,1111010)2cns
Aritmética en complemento a 2 La utilización de complemento a 2 facilita la implementación física (menos puertas lógicas) La operación: A – B se puede calcular como A + (-B) Los números se pueden representar en el intervalo: -2n-1≤ N ≤ 2n-1 -1 Donde n es el número de bits para representar el número. Si una operación aritmética produce un resultado por fuera de este intervalo se dice que se presenta una condición de desbordamiento. (no es un resultado válido).
Aritmética en complemento a 2 Suma de números en complemento a 2 Caso 1: Calcular A = B + C donde B y C son enteros positivos O sea: (A)2 = (B)2 + (C)2 Como: 0≤ B ≤ 2n-1 -1 y 0≤ C ≤ 2n-1 -1 0≤ A ≤ 2n-1 -1 + 2n-1 -1 Luego: 0≤ A ≤ 2n- 2 Se presentara condición de desbordamiento cuando el resultado: 2n-1≤ A ≤ 2n- 2 ( el n-ésimo bit será siempre 1 mostrando el desbordamiento)
Aritmética en complemento a 2 Suma de números en complemento a 2 Caso 1: Ejemplo: sumar +(1001)2 y +(0101)2 usando aritmética a dos de 5 bits +(1001)2 = (0, 1001)2cns 0 1 0 0 1 +(0101)2 = (0, 0101)2cns + 0 0 1 0 1 0 1 1 1 0 El bit de signo es “0” el resultado es correcto: (0, 1110)2cns = +(14)10
Aritmética en complemento a 2 Suma de números en complemento a 2 Caso 1: Ejemplo: sumar +(1100)2 y +(0111)2 usando aritmética complemento a dos de 5 bits +(1100)2 = (0, 1100)2cns 0 1 1 0 0 +(0111)2 = (0, 0111)2cns + 0 0 1 1 1 1 0 0 1 1 El bit de signo es “1” el resultado es incorrecto: (1, 0011)2cns = -(1101)2 = -(13)10 Observación: existe desbordamiento. Se requieren más bits para expresar el resultado (19)10 el máximo valor que se puede expresar: (0, 1111)2cns
Aritmética en complemento a 2 Suma de números en complemento a 2 Caso 2: Calcular A = B - C donde B y C son enteros positivos O sea: (A)2 = (B)2 + (-(C))2 (A)2 = (B)2 + [C]2 Luego: A = (B)2 + [C]2 = (B)2 + 2n – (C)2 = 2n + (B – C)2 Nótese: 2n es el bit de acarreo y si B ≥ C siempre habrá acarreo (A)2 = (B)2 + [C]2 y el acarreo se descarta. Si B < C (B-C) < 0 luego: A = 2n - (C – B)2 = -(C-B)2 [C-B] 2 no hay acarreo
Aritmética en complemento a 2 Suma de números en complemento a 2 Caso 2: Si B y C son positivos B – C siempre será menor que A, lo cual significa que no habrá desbordamiento Ejemplo: calcular (12)10 – (5)10 , en complemento a 2 usando 5 bits. como: (12)10 =+(1100)2 y -(5)10 =-(0101)2 +(1100)2 = (0, 1100)2cns 0 1 1 0 0 -(0101)2 = (1, 1011)2cns + 1 1 0 1 1 1 0 0 1 1 1 Se descarta el acarreo, el bit de signo es cero, resultado: +(7)10 hay acarreo
Aritmética en complemento a 2 Suma de números en complemento a 2 Caso 2: Ejemplo: calcular (5)10 – (12)10 , en complemento a 2 usando 5 bits -(12)10= -(1100)2 y (5)10=+(0101)2 +(0101)2 = (0, 0101)2cns 0 0 1 0 1 -(1100)2 = (1, 0100)2cns + 1 0 1 0 0 1 1 0 0 1 no hay acarreo No hay acarreo, el bit de signo es uno (correcto), resultado: -(7)10
Aritmética en complemento a 2 Suma de números en complemento a 2 Ejemplo: calcular (0,0111)2cns – (1,1010)2cns Para usar un sumador se nota que –(1, 1010) = (0,0110) (0,0111)2cns (0, 0111)2cns 0 0 1 1 1 -(1,1010)2cns (0, 0110)2cns + 0 0 1 1 0 0 1 1 0 1 No hay acarreo, el bit de signo es cero (correcto), resultado: +(13)10
Aritmética en complemento a 2 Suma de números en complemento a 2 Ejemplo: calcular (0,0111)2cns – (1,1010)2cns Para usar un sumador se nota que –(1, 1010) = (0,0110) (0,0111)2cns (0, 0111)2cns 0 0 1 1 1 -(1,1010)2cns (0, 0110)2cns + 0 0 1 1 0 0 1 1 0 1 No hay acarreo, el bit de signo es cero (correcto), resultado: +(13)10 Nota: -[A] =[[A]2]2 = 2n –[A]2 = 2n – (2n –A) = A
Aritmética en complemento a 2 • Suma de números en complemento a 2 • Caso 3: Calcular: A= - B – C = -(B+C) = [B + C]2 • A= (-B) + (-C) = [B]2 + [C]2 • A= 2n – (B)2 + 2n –(C)2 • A = 2n + [B+C]2 • Se consideran 2 posibilidades: • Si -2n-1≤ A y se descarta el acarreo el resultado será correcto. • Si A <-2n-1 Habrá desbordamiento y el bit de signo es incorrecto – aparece como positivo (el resultado es incorrecto).
Aritmética en complemento a 2 Suma de números en complemento a 2 Caso 3: Ejemplo: calcular (-(9))10 + (-(5))10 , en complemento a 2 usando 5 bits -(9)10= -(1001)2 y -(5)10=-(0101)2 -(1001)2 = (1, 0111)2cns 1 0 1 1 1 -(0101)2 = (1, 1011)2cns + 1 1 0 1 1 1 1 0 0 1 0 hay acarreo hay acarreo (se descarta), el bit de signo es uno (correcto), resultado: -(14)10
Aritmética en complemento a 2 Suma de números en complemento a 2 Caso 3: Ejemplo: calcular (-(12))10 + (-(5))10 , en complemento a 2 usando 5 bits -(12)10= -(1100)2 y -(5)10=-(0101)2 -(1100)2 = (1, 0100)2cns 1 0 1 0 0 -(0101)2 = (1, 1011)2cns + 1 1 0 1 1 1 0 1 1 1 1 hay acarreo hay acarreo (se descarta), el bit de signo es cero (incorrecto), resultado: +(15)10 el valor correcto debe ser –(17)10
Aritmética en complemento a 2 Suma de números en complemento a 2 Ejercicio: Sea A = (25)10 y B= -(46)10 Calcular: A + B, A- B, B – A y –A-B, usando la suma
Aritmética en complemento a 2 Suma de números en complemento a 2 Ejercicio: Solución: Como A = +(25)10 =(0,0011001)2cns B= -(46)10 =-(0,0101110)2cns =(1, 1010010)2cns
Sistemas numéricos con complemento disminuido en una base El complemento disminuido de un número (Nr) en una base se define: [N]r-1 = rn-(N)r – 1 Caso especial: complemento disminuido en una base para los números binarios (se llama: complemento a a 1): [N]2-1 = 2n-(N)2 – 1 Ejemplos: encontrar el complemento a 1 de (01100101)2 [N]1 = 28 – (01100101)2- 1 = (100000000)2- (01100101)2- (00000001)2 =(10011011)2 - (00000001)2= (10011010)2 n: número de dígitos r : es la base
Sistemas numéricos con complemento disminuido en una base Ejercicios: -Encontrar el complemento a 1 de (11010100)2 Resp: (00101011)2 - Encontrar el complemento a 9 de (40960)10 Resp: (59039)10
Sistemas numéricos con complemento disminuido en una base Algoritmo para encontrar el complemento disminuido a una base: Reemplazar cada digito ai de (N)r por r-1-ai Caso especial: si r=2 basta reemplazar cada bit por su complemento. Ejercicio: Aritmética de complemento disminuido a una base. Qué es el acarreo final circular ? Analizar los mismos casos de las sumas , que se analizaron para el complemento a 2, con el complemento 1.
Códigos de computadoras Son conjuntos de símbolos que se utilizan para representar Información. Ejemplo el: Semáforo: símbolos: verde, amarillo, rojo Cada tiene un significado (representa una información) Estudiaremos tres tipos de códigos: - Códigos numéricos. - Códigos de caracteres - Códigos para detección de errores.
Códigos de computadoras Códigos numéricos: representan números. Ejemplos: Números de puntos fijo Números de puntos flotante. Números de punto fijo: Entero con signo, Fracciones con signo. .
Códigos de computadoras Entero de punto fijo: . Signo Magnitud punto implícito Fracción de punto fijo: signo Magnitud punto implícito Bit signo 0: Representa un número positivo Bit signo 1: Representa un número negativo ( en complemento a 2) . n-1 n-2 n-3 …………… 2 1 0 0 1 2 …………… n-2 n-2 n-1 .
Códigos de computadoras Representación con Exceso o Sesgada: Una representación con exceso –K de un código C se forma sumando el valor de K a la palabra de código C. Ejemplo: Sea el número [0111]2 (en complemento a 2) de cuatro bits. La representación en exceso 8 sería: Se suma (1000)2 (exceso 8) al código: [0111]2 + (1000)2 exceso 8: (1111) .
Códigos de computadoras Números en punto flotante: Tienen la forma: N = M x r E mantisa(significado) Exponente(característica) Exponente: es un entero fijo Mantisa: es un número de punto fijo. Observe que: +-(an-1 …a0. a-1 a-m)r = +-(.an-1….a-m)r x rn La mantisa generalmente se codifica en magnitud y signo: signo=0 Positiva y signo=1 negativa .
Códigos de computadoras Números en punto flotante: El exponente con frecuencia se codifica en complemento a 2 con Exceso K. Generalmente K es: 2e-1 donde e es el número de bits. Osea: -2e-1≤ E ≤ 2e-1 -1 Sumando el sesgo K 0 ≤ E + 2e-1 ≤ 2e -1 Luego el valor sesgado de E varía entre 0 y 2e -1 E = (be-1, be-2 ….b0) exceso -K Representación: se combina M y E: N=(SM be-1 be-2 … b0 an-1 … a-m)r =(1)SM x(.an-1 … a-m)r xrE .
Codificación BCD ( códigos de caracteres) Decimal codificado en binario Sirve para representar dígitos del 0 al 9. Cada posición de bit en el código tiene un valor o peso numérico fijo asociado a ella. BCD: utiliza 4 bits y los pesos son los mismos que en un entero binario de 4 bits. El código BCD de un digito decimal, es igual al equivalente binario del número, con ceros de relleno. 0: 0000 3: 0011 6: 0110 9: 1001 1: 0001 4: 0100 7: 0111 10: XXXX 2: 0010 5: 0101 8: 1000 Ejemplo: (9750)10 = (1001011101010000)BCD .