Está en la página 1de 5

Funcionamiento del algoritmo XS3 para conversión binario-BCD

Por Uriel Corona Bermúdez

En este documento se describe el funcionamiento delalgoritmo


XS3 para la conversión de código binario a código BCD. Para
la implementación se hacen el uso de corrimientos y sumas
binarias, para finalmente obtener un número decimal
codificado a binario.

Desarrollo

¿Qué es el código BCD?

El código BCD (acrónimo de Binary Coded Decimal) se utiliza para representar fácilmente números decimales
en formato binario. Consiste en sustituir cada digito decimal por su equivalente binario natural de cuatro bits.

Decimal BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
Tabla 1. Código BCD.

No se utiliza para transimisión ni almacenamiento pues necesita más bits que el código binario para representar
un número, sin embargo, es utilizado para representación en displays.¹
Descripción del algoritmo para conversión binaria-BCD XS3

El algoritmo para conversión de binario a BCD XS3 utiliza corrimientos y sumas de números binarios. Es
utilizado, como anteriormente se menciona, para la codificación de salida hacia algún componente visual.

Para la conversión son necesarios dos registros, uno en donde tengamos el número en binario que deseamos
convertir a decimal y el segundo en donde quedará guardado el número expresado en decimal.

Cada cuatro bits del registro binario en donde se guardará el número decimal expresará un digito en decimal,
esto se debe a que en digitos sólo podemos expresar números del 0 al 9, y en binario son necesarios 4 bits para
eso como se mostró en la Tabla 1.

El registro del número en decimal debe ser del número de digitos máximo que tiene el número decimal
multiplicado por cuatro(por lo mencionado anteriormente), por ejemplo, para 63, que tiene dos digitos, es
necesario un registro de ocho bits, para 154, que tiene tres digitos, es necesario un registro de doce bits y así
sucesivamente.

El registro del número binario debe almacenar el número a convertir expresado en codificación binaria.

Cada cuatro bits del registro decimal representarán un digito. Por ejemplo, si se tiene un registro para un número
de tres digitos(doce bits) la codificación será así:

CCCC DDDD UUUU

donde:
CCCC son las centenas.
DDDD son las decenas.
UUUU son las unidades.
¿Cómo funciona el algoritmo para conversión binaria-BCD XS3?

Para realizar la conversión los pasos a seguir son los siguientes:

1. Inicializar el registro del número decimal en ceros.

2. Colocar el bit más significativo del registro binario en la posición del bit menos significativo del registro
decimal.

3. Revisar para cada digito del registro decimal si excede el número cuatro (0100), es decir, es igual o
mayor a cinco, de ser así, le sumaremos tres (0011), en caso contrario, no hacer nada.

4. Realizar un corrimiento a la izquierda, sin importar el bit que obtengamos a la derecha pues luego se
llenará con la siguiente iteración. Despreciar el bit excedente a la izquierda. Repetir desde el paso 2 el
número de bits del registro binario menos un veces.

5. Realizar únicamente el paso 2.

En cada digito del registro se encontrará, en valor binario, el número correspondiente a cada digito decimal.
Ejemplo:

Convertir el número 1100100(2) ( 100(10) ) a decimal.

Sabemos que el número contendrá tres dígitos, entonces el registro decimal será de doce bits. Mediante el
algoritmo tendrémos los siguientes resultados:

Iteración Paso Registro decimal Registro binario


1 1 0000 0000 0000 110 0100
2 0000 0000 0001 110 0100
3 0000 < 0100 110 0100
0000 < 0100
0001 < 0100
0000 0000 0001
4 0000 0000 001X 100 100X
2 2 0000 0000 0011 100 100X
3 0000 < 0100 100 100X
0000 < 0100
0011 < 0100
0000 0000 0011
4 0000 0000 011X 001 00XX
3 2 0000 0000 0110 001 00XX
3 0000 < 0100 001 00XX
0000 < 0100
0110 > 0100 => 0110 + 0011 = 1001
0000 0000 1001
4 0000 0001 001X 010 0XXX
4 2 0000 0001 0010 010 0XXX
3 0000 < 0100 010 0XXX
0001 < 0100
0010 < 0100
0000 0001 0010
4 0000 0010 010X 100 XXXX
5 2 0000 0010 0101 100 0000
3 0000 < 0100 100 0000
0010 < 0100
0101 > 0100 => 0101 + 0011 = 1000
0000 0010 1000
4 0000 0101 000X 00X XXXX
6 2 0000 0101 0000 00X XXXX
3 0000 < 0100
0101 > 0100 => 0101 + 0011 = 1000
0000 < 0100
0000 1000 0000
4 0001 0000 000X 0X XXXX
Extra 2 0001 0000 0000 0X XXXX
Final 0001 = 1
0000 = 0
0000 = 0
0001 0000 0000 = 1 0 0
Tabla 2. Ejemplo.
Conclusión

Es posible observar que la salida es el número en binario propuesto, sólo que con su respectiva codificación
BCD. Este algoritmo funciona para cualquier número binario pero es necesario implementarlo como se
menciona.

El principal error que suele cometerse es no conocer el tamaño del registro decimal y el número de corrimientos
que debe hacerse, sin embargo, esa cuestión fue explicada anteriormente.

Es mucho más efectivo que el método de sumadores BCD puesto que el resultado es el mismo, sin embargo, el
número de operaciones que se realizan es menor y por lo tanto el costo de tiempo también lo es.

Referencias

1. Esteve, B. R. (2005). Cap. 1.5 Otros códigos: Código BCD y código Gray. En Fundamentos de electrónica
digital (pp. 32-36). Valencia, España: Universidad Politécnica de Valencia. Servicio de publicación.

También podría gustarte