E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2. Sistemas de codificación en binario 5.2.1. Sistemas numéricos posicionales [ Wakerly 2.1 pág. 26] 5.2.2. Números octales y hexadecimales [ Wakerly 2.2 pág. 27] 5.2.3. Conversión general de sistemas numérico posicionales [ Wakerly 2.3 pág. 29] 5.2.4. Suma y resta de números no decimales [ Wakerly 2.4 pág. 32] 5.2.5. Representación de números negativos (signo-magnitud, complemento a 1, complemento a 2) [ Wakerly 2.5 pág. 34] 5.2.6. Suma y resta en complemento a 2 [ Wakerly 2.6 pág. 39] 5.2.7. Código binarios para números decimales [ Wakerly 2.10 pág. 48] 5.2.8. Código Gray [ Wakerly 2.11 pág. 51] 5.2.9. Códigos detectores y correctores de errores[ Wakerly 2.15 pág. 58] ULPGC Electrónica Industrial - 4º ETSII 1 Objetivos • • • • • • • • • • Revisión de sistema numérico decimal Contar en el sistema binario Convertir de decimal a binario y viceversa Conversión entre los sistemas hexadecimal y octal a binario Aplicar las operaciones aritméticas a los números binarios Determinar el complemento a 1 y complemento a 2 de un número binario Expresar números con signo en el formato binario Expresar números decimales en formato BCD (Código Decimal Binario) Interpretar el código ASCII Utilizar códigos para detección y corrección de errores ULPGC Electrónica Industrial - 4º ETSII 2 ® «Roberto Sarmiento y Sebastián López» 1 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.1. Sistemas numéricos posicionales • El sistema de numeración que utilizamos a diario es un sistema de numeración posicional en el cual un número se representa mediante una cadena de dígitos en la cual posición de cada dígito tiene asociado un peso. • En general, cualquier número decimal de la forma: d p −1d p − 2 ...d1d 0 .d −1d − 2 ...d n Dígito Menos Significativo (LSD) Coma fraccionaria Dígito Más Significativo (MSD) tiene el valor: D = d p −110 p −i + d p − 210 p − 2 + ... + d1101 + d 010 0.d −110 −1 + d − 210 −2 + ...d n10 − n radix Electrónica Industrial - 4º ETSII ULPGC 3 5.2.1. Sistemas numéricos posicionales • El sistema de numeración que utilizamos a diario es un sistema de numeración posicional en el cual un número se representa mediante una cadena de dígitos en la cual posición de cada dígito tiene asociado un peso. • En general, cualquier número decimal de la forma: d p −1d p − 2 ...d1d 0 .d −1d − 2 ...d n Dígito Menos Significativo (LSD) Coma fraccionaria Dígito Más Significativo (MSD) tiene el valor: D= p −1 ∑d ⋅r i =− n ULPGC i i Electrónica Industrial - 4º ETSII 4 ® «Roberto Sarmiento y Sebastián López» 2 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.1. Sistemas numéricos posicionales • Los sistemas digitales usan dígitos binarios, y por lo tanto se usa una base binaria para representar cualquier número en un sistema digital. • La forma general de un número binario es: b p −1b p − 2 ...b1b0 .b−1b− 2 ...bn Y su valor equivalente B= p −1 i b ⋅ 2 ∑i i=− n ULPGC Electrónica Industrial - 4º ETSII 5 5.2.2. Números octales y hexadecimales • La base (o radix) 8 y especialmente la 16 se usan a menudo para hacer las representaciones de números binarios más cortas, reduciendo la necesidad de cadenas largas indescifrables. dígitos del 0 al 7 dígitos del 0 al 9 dígitos del 0 al 9 + ABCDEF ULPGC Electrónica Industrial - 4º ETSII 6 ® «Roberto Sarmiento y Sebastián López» 3 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.2. Números octales y hexadecimales • Conversión de binario a octal: comenzando en la coma binaria, y hacia la izquierda, separar los bits en grupos de 3 y reemplazar por el correspondiente dígito octal. • Conversión de binario a hexadecimal: comenzando en la coma binaria, y hacia la izquierda, separar los bits en grupos de 4 y reemplazar por el correspondiente dígito hexadecimal. • Conversión de la parte fraccionaria: comenzando en la coma binaria, separar los bits en grupos de 3 o 4 hacia la izquierda y derecha y reemplazar. • Conversión a números binarios: Reemplazar cada octal o dígito hexadecimal con la correspondiente cadena binaria de 3 o 4 bits. ULPGC Electrónica Industrial - 4º ETSII 7 5.2.3. Conversión general de sistemas numéricos • Como regla general, no se puede pasar de la representación de un número en una base a otra sencillamente sustituyendo los números de una base por los equivalentes de la otra; esto es correcto sólo cuando ambas bases son potencias enteras del mismo número. • El valor de un número en cualquier base viene dado por: D= p −1 ∑d ⋅r i=− n i i donde r es la base del número, p indica el número de dígitos a la izquierda de la coma, y n indica el número de dígitos a la derecha. ULPGC Electrónica Industrial - 4º ETSII 8 ® «Roberto Sarmiento y Sebastián López» 4 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.3. Conversión general de sistemas numéricos • El valor decimal de un número en cualquier base se determina convirtiendo cada dígito del número en su equivalente en base 10, y luego se aplica la fórmula usando aritmética en base 10. • Método alternativo: ULPGC Electrónica Industrial - 4º ETSII 9 5.2.3. Conversión general de sistemas numéricos • Para convertir de decimal a base r, se sigue el método de la división sucesiva. • La división sucesiva por r de un número decimal generará el número en base r equivalente formado por los restos de las divisiones. • El primer resto que se genera es el dígito menos significativo (LSD). ULPGC Electrónica Industrial - 4º ETSII 10 ® «Roberto Sarmiento y Sebastián López» 5 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.4. Suma y resta de números no decimales 1. Para sumar dos números binarios, x = xm-1...x0 + y = ym-1...y0, 2. se suman los bits menos significativos, x0 + y0+ 0 (acarreo inicial, c0=0) = s0 + c1 que produce un bit de acarreo de salida, c1, y el bit de suma, s0 3. Se sigue este proceso para cada par de bits, de derecha a izquierda, y se incluye el acarreo de salida de cada columna en la suma de la columna siguiente Electrónica Industrial - 4º ETSII ULPGC 11 5.2.4. Suma y resta de números no decimales 1 0 0 1 1 0 0 1 1 1 0 0 ULPGC Electrónica Industrial - 4º ETSII 12 ® «Roberto Sarmiento y Sebastián López» 6 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.4. Suma y resta de números no decimales • La resta binaria se realiza de forma similar, restando un par de bits a la vez, obteniendo en cada paso un bit de adeudo (borrow) y un bit de resta. ULPGC Electrónica Industrial - 4º ETSII 13 5.2.5. Representación de números negativos Representación en signo y magnitud • El número está formado por dos partes, la magnitud y el signo, que puede ser + ó -. En los números binarios, el signo se representa mediante un único bit adicional (0 si es positivo y 1 si es negativo) cuya posición es la del MSB 011110112 = +12310 111110112 = -12310 bit de signo • Teniendo en cuenta que hay dos posibles representaciones del cero, cualquier entero en signo y magnitud con n bits está dentro del rango que va de –(2n-1-1) a +(2n-1-1). ULPGC Electrónica Industrial - 4º ETSII 14 ® «Roberto Sarmiento y Sebastián López» 7 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.5. Representación de números negativos Representación en signo y magnitud • La aritmética en signo y magnitud requiere que se comparen tanto los signos como las magnitudes de los operandos. • Si el signo de ambos números es el mismo, se suman las magnitudes y se añade el mismo signo. • Si los signos son diferentes, hay que comparar las magnitudes: • Si son iguales, el resultado es 0 • Si son distintas, restamos a la magnitud mayor la más • pequeña y el resultado hereda el signo de la mayor Electrónica Industrial - 4º ETSII ULPGC 15 5.2.5. Representación de números negativos Representación de complemento • Cualquier entero se puede representar por: n −1 D = ∑ d i r i = d n −1d n − 2 Κ d1d 0 i =0 donde n es el número de dígitos y r la base. • En el sistema en complemento a la base r, se define el complemento de D con n dígitos como: D = rn − D • Alternativamente, podemos obtener el complemento a la base de la siguiente forma: D = D' + 1 ULPGC Electrónica Industrial - 4º ETSII 16 ® «Roberto Sarmiento y Sebastián López» 8 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.5. Representación de números negativos Representación de complemento • Ventajas – Representación de números negativos D+D =0 – La realización de sumas y restas es más rápida ya que se elimina la necesidad de comparadores. ULPGC Electrónica Industrial - 4º ETSII 17 5.2.5. Representación de números negativos Representación de complemento • Complemento a uno. Margen con n bits –2n-1 a +2n-1 – El bit más significativo indica el signo y el resto el módulo si el número es positivo. En caso de ser negativo el módulo es el resultante de cambiar los “1” por “0” y viceversa 010101012= 8510 101010102= -8510 • Complemento a dos. Margen con n bits –(2n-1+1) a +2n-1 – Igual al complemento a uno, pero si el número es negativo se suma “1” al resultado. Es la representación más utilizada. 010101012= 8510 101010112= -8510 ULPGC Electrónica Industrial - 4º ETSII 18 ® «Roberto Sarmiento y Sebastián López» 9 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.5. Representación de números negativos Representación de complemento • A veces, mientras se realizan operaciones aritméticas es necesario pasar de números de n bits a números de m bits • Extensión de signo – Si m>n, se repite el bit de signo en las m-n posiciones después del bit de signo del número original (desde la posición n hasta la m-1) • Truncamiento de signo – Si n>m, se hace un truncamiento de signo, descartando los m-n bits que siguen al bit de signo. Sin embargo, este número truncado es válido solamente cuando todos los bits descartados son iguales al bit de signo ULPGC Electrónica Industrial - 4º ETSII 19 5.2.6. Suma y resta de complemento a dos • Suma normal, no diferenciándose los negativos • Resta, como una suma pero complementando a dos el sustraendo x-y = x+ (-y) • Se ignora cualquier acarreo del bit de signo ULPGC Electrónica Industrial - 4º ETSII 20 ® «Roberto Sarmiento y Sebastián López» 10 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.6. Suma y resta de complemento a dos • Suma normal, no diferenciándose los negativos • Resta, como una suma pero complementando a dos el sustraendo x-y = x+ (-y) • Se ignora cualquier acarreo del bit de signo ULPGC Electrónica Industrial - 4º ETSII 21 5.2.6. Suma y resta en complemento a 2 Desbordamiento • Se produce desbordamiento si los signos de los sumandos son iguales y el del resultado es diferente • o que los acarreos de entrada y salida del bit más significativo son diferentes) ULPGC Electrónica Industrial - 4º ETSII 22 ® «Roberto Sarmiento y Sebastián López» 11 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.7. Código binarios para números decimales • Los más utilizados son: – BCD y – 1-de-10 (para excitación de dispositivos externos como relés o LED) ULPGC Electrónica Industrial - 4º ETSII 23 5.2.8. Código Gray • El código Gray es un código reflejado: 1. Las primeras 2n palabras de un código Gray de (n+1) bit son idénticas a las de un código de n bits, añadiendo un cero. 2. Las últimas 2n palabras de un código Gray de (n+1) bit son iguales a las de un código de n bits, pero escritas en orden inverso y añadiendo un 1 ULPGC Electrónica Industrial - 4º ETSII 24 ® «Roberto Sarmiento y Sebastián López» 12 E.T.S. de Ingenieros Industriales Electrónica Industrial, 4º curso 5.2.9. Códigos detectores y correctores de errores bit de paridad • Pueden ser de paridad par o paridad impar • Se añade un bit, que puede ser un “1” o un “0”, según sea necesario para conseguir que el número total de “1” sea par o impar • Con este sistema se puede detectar el error en un bit Concepto de distancia • La distancia de un código es el número de bits diferentes que hay entre cualesquiera dos palabras del código • Un código es capaz de detectar errores de un bit (errores simples) cuando su distancia mínima es 2 ULPGC Electrónica Industrial - 4º ETSII 25 5.2.9. Códigos detectores y correctores de errores Códigos detectores de errores • Un código es capaz de corregir errores de un bit (errores simples) cuando su distancia mínima es mayor a 2 (es decir es de tres o más) ULPGC Electrónica Industrial - 4º ETSII 26 ® «Roberto Sarmiento y Sebastián López» 13