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

Documentos relacionados