Sistema decimal codificado en binario (BCD). Sistemas
Transcripción
Sistema decimal codificado en binario (BCD). Sistemas
Sistema decimal codificado en binario (BCD). Sistemas empaquetado y desempaquetado. En los sistemas decimales codificados en binario se convierten, uno a uno, los dígitos decimales a binario. Nótese que las representaciones alfanuméricas son representaciones BCD que emplean 6, 7 u 8 bits por dígito. Para poder representar un dígito decimal se requerirán, al menos, 4 bits. Ahora bien, puesto que 4 bits permiten 16 combinaciones, y dígitos decimales sólo existen 10 (del 0 al 9), se desperdicia el 6 * 100/16=37,5% de la capacidad de representación. Cabría, por tanto, preguntarse por el interés de este sistema de representación. Su justificación se basa en dos puntos: - La entrada y salida de datos del computador debe realizarse usando la base decimal, puesto que es el sistema que estamos acostumbrados. Por tanto, si los cálculos a realizar son sencillos, puede no compensar la doble traducción de decimal a binario y viceversa, aunque los datos ocupen más espacio y los cálculos con ellos sean más lentos. - Los errores de redondeo que se producen en binario y decimal son distintos, como se ha constatado anteriormente. Por ello, para algunas aplicaciones, puede ser interesante trabajar con un sistema de representación de este tipo, que permite seguir exactamente las normas de redondeo establecidas en decimal. La codificación BCD consiste en asociar a cada dígito su valor en binario puro. Ejemplo: Representar 175,62 BCD 1 7 5 6 2 0001 0111 0101 0110 0010 La coma no se representa. Se determina a través del formato del lenguaje de programación asociado. Por ejemplo en Cobol, en este caso el formato asociado sería 999V99. Donde 9 indica que es numérico y la V la posición de la coma. Las operaciones aritméticas se hacen siguiendo las reglas convencionales. La mayor dificultad se encuentra en la generación de acarreos. Si a + b < 10 no existe acarreo y no se debe corregir: Ejemplo: 3 0011 +5 + 0101 8 1000 Si a + b > 9 y < 16 no existe acarreo y se debe corregir sumando 6: Ejemplo: + 6 0110 8 + 1000 14 1110 al sumar en binario 0110 + 1000 se obtiene un código BCD inválido, que hay que corregir para producir un resultado correcto, esto es un acarreo y 0100. Esto es: 1 Si a + b > 16 existe acarreo y se debe corregir también sumando 6: Ejemplo: + 9 1001 8 + 1000 17 10001 En este caso el resultado es válido (tienen significado en decimal) pero incorrecto ( ya que es el número 11). La corrección es: Una ventaja adicional, de todos los sistemas decimales codificados en binario, es que disponen de códigos sobrantes lo que permite codificar el signo. De esta manera, el signo puede servir para separar los números almacenados en posiciones consecutivas. Los sistemas decimales codificados en binario tienen dos ámbitos de aplicación: - Desempaquetado: En la entrada - salida y periféricos los números suelen codificarse como alfanumérico, esto es, empleando un octeto por dígito. Se suele decir que el número está desempaquetado. El signo puede ir como carácter especial de cabecera o, más corrientemente, de cola. Otra alternativa es incluir el signo en la parte sobrante del octeto que representa el primer o último carácter. - Empaquetado: En cálculo, especialmente en aplicaciones de gestión, se puede emplear un sistema empaquetado, esto es, reservando solamente cuatro bits por dígito. En general, se emplean números de longitud variable, separados entre ellos mediante los caracteres de signo o por otro carácter especial. Las codificaciones más usuales son las de binario puro o exceso a tres. Ejemplos de representación con octetos y codificación EBCDIC. 2