Está en la página 1de 14

CODIGOS BCD (Decimal Codificado en Binario)

1.- Introducción.

Se entiende por código un conjunto estandarizado de símbolos para representar


información en forma biunívoca de tal forma que cada valor de la información tiene
una representación única, y cada representación tiene un valor único. Es decir, no
puede existir ambigüedad. De ésta definición se deduce que los sistemas numéricos
estudiados, constituyen códigos de representación de las cantidades.

En la vida cotidiana aparecen varias formas sencillas de códigos por ejemplo un


semáforo, las indicaciones manuales de un árbitro de baloncesto o de fútbol, etc. Las
computadoras y otros sistemas digitales utilizan códigos más complejos para el
procesamiento, almacenamiento e intercambio de la información de diversos tipos.

2.- Códigos decimales codificados en binario (BCD).

La razón principal de la existencia de los códigos BCD, es que la información


procesada por cualquier sistema digital ha de convertirse finalmente al sistema
decimal para su fácil interpretación.

En los códigos BCD cada número decimal se codifica directamente en un código


binario. Para representar los diez dígitos del 0 al 9 se necesitan 4 bits, y por tanto de
las 16 combinaciones posibles (24) con 4 bits en los códigos BCD, solamente se
utilizan 10.

El BCD es un sistema que permite expresar, cada uno de los dígitos decimales con un
código binario, Puesto que en el sistema BCD, solo existen diez grupos de códigos, es
muy fácil convertir entre decimal y BCD y viceversa. Así como se lee y escribe en
decimal, el grupo BCD, nos proporciona un excelente interfaz para los sistemas
binarios. Por ejemplo las entradas por teclado y las salidas digitales.

Es importante entender que los números BCD son números decimales y no números
binarios. La única diferencia entre un número decimal y uno BCD, es que los
decimales se escriben con los símbolos 0, 1, 2, ...., 9. Y los números BCD, utilizan los
códigos 0000, 0001, 0010,...., 1001. Pero el valor del número es exactamente el
mismo.

Los códigos BCD ponderados son aquellos en los que a cada posición o cifra binaria
se le asigna un peso y el número decimal equivalente a una combinación binaria, se
obtiene sumando los pesos de las posiciones que poseen el valor (1). Así pues:

Un número decimal (N) de (0) a (9) se representa por Ν = Ρ Χ donde (Xi),


ι=
puede tomar el valor (0) ó (1) y (Pi) es el peso de la posición (i).
3.- Código BCD Natural.

También llamado código 8421, es un tipo de código decimal binario, donde cada dígito
decimal de (0) a (9), se representa, por un código binario de cuatro bits. La
designación 8421, indica los pesos binarios de los cuatro bits 23, 22, 21, 20.

La principal ventaja de este código, es la facilidad de conversión entre 8421 y decimal.

Con cuatro dígitos se podrían representar 16 combinaciones de números, pero en el


sistema BCD Natural, solo se usan diez combinaciones, las otras seis combinaciones
no son válidas. (Ver figura No. 1).

DIGITO BCD
DECIMAL NATURAL
P3 P2 P1 P0
8 4 2 1
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1

Figura No. 1. Tabla para el Código BCD natural.

Las combinaciones, a las que no se le asignan ningún número en BCD son: 1010,
1011, 1100, 1101, 1110, 1111.

4.- Conversión de decimal a BCD Natural.

Para expresar en BCD, reemplace cada dígito en decimal, por el apropiado código de
cuatro bits.

Ejemplo 1.
Expresar el número 35 en código BCD Natural.

Como el número 3 en BCD Natural, equivale a 0011 y el 5 a 0101, reemplazamos todo


el número en BCD Natural y nos queda:

(35) 10 (00110101) BCD


-------------------------------------------------------------------------------------------------------------------
Ejemplo 2.
Expresar el número 970 en código BCD Natural.

Se tiene que 9 = 1001 7 = 0111 0 = 0000, entonces:


(970) 10 (100101110000) BCD.
-------------------------------------------------------------------------------------------------------------------

5.- Conversión de BCD Natural a decimal.

Es igualmente sencillo pasar de código BCD Natural a decimal. Se divide él número en


grupos de a cuatro de derecha a izquierda y se busca el equivalente en decimal. Si por
algún caso, quedan menos de cuatro dígitos a la izquierda, entonces se debe llenar
con ceros hasta completar los otros cuatro dígitos.

Ejemplo 3.
Convertir el número (100100011000) BCD a decimal.

Separando en grupos de cuatro de derecha a izquierda, queda:


1001 = 9 0001=1 1000=8
Por lo tanto: (100100011000) BCD (918) 10.
-------------------------------------------------------------------------------------------------------------------

Ejemplo 4.
Convertir el número (1101010010) BCD a decimal.

Separando en grupos de a cuatro, tenemos: 11 = 3 0101=5 0010=2


En el primer bloque quedaron solamente 2 dígitos, añadimos ceros a la izquierda,
hasta completar los cuatro dígitos con los que siempre trabaja el código BCD natural.
Al realizar esto, el número nos queda 0011=3; por consiguiente: 352.

(1101010010) BCD (352) 10.


-------------------------------------------------------------------------------------------------------------------
6.- Suma en código BCD Natural.

De las operaciones aritméticas, la suma es la más importante, dado que las otras tres
se pueden llevar a acabo utilizando la suma. Para sumar dos números en código BCD
Natural, utilizamos los siguientes pasos:

a) Sumar los dos números BCD natural, utilizando las reglas de la suma binaria.

b) Si el resultado de una suma de 4 bits es menor o igual a (1001) (9 en binario), el


resultado es un número BCD Natural válido.

c) Si el resultado de una suma de 4 bits es mayor que 9 (1001), es decir si


aparece un número que no existe en BCD Natural, o si se genera un acarreo en
el grupo de 4 bits, el resultado no es correcto. En este caso y para corregir se
suma (0110) para saltar así los 6 estados no validos y pasar así al código BCD
Natural. Si se genera un acarreo al sumar 6, éste se suma al grupo de 4 bits
siguientes.

Ejemplo 5.
Sumar 5 y 2 en código BCD Natural

5 0 1 0 1
2 + 0 0 1 0
Existe en un BCD Natural, también se puede decir
7 0 1 1 1 que es menor que 9, o sea, que el resultado es
correcto.

Ejemplo 6.
Sumar 9 y 4 en código BCD Natural

9 1 0 0 1
4 + 0 1 0 0
Resultado no existe en BCD Natural, se debe corregir
1 1 0 1 sumándole 0110
+ 0 1 1 0
13 1 0 0 1 1 Resultado correcto
Ejemplo 7.
Sumar 597 y 493 en código BCD Natural

597 0 1 0 1 1 0 0 1 0 1 1 1
463 + 0 1 0 0 0 1 1 0 0 0 1 1
1 0 0 1 1 1 1 1 1 0 1 0
+ 0 1 1 0 0 1 1 0 Corrección
1 0 1 0 0 1 1 0 0 0 0 0
+ 0 1 1 0 Corrección
1060 1 0 0 0 0 0 1 1 0 0 0 0 0 Resultado correcto

Ejemplo 8.
Sumar 8 y 9 en código BCD Natural

8 1 0 0 0
9 + 1 0 0 1
1 0 0 0 1
Aparece acarreo de un bloque de 4 bits al otro, se
+ 0 1 1 0 corrige sumándole 0110
17 1 0 1 1 1 Resultado correcto

Obsérvese que la suma de dos dígitos en código BCD Natural, produce un acarreo de
la siguiente posición de dígito siempre que la suma binaria inicial o la suma del factor
de corrección produzcan un acarreo.

7.- Resta en código BCD Natural.

Para la resta en el código BCD Natural, se utiliza el convenio del complemento a


nueve porque permite reducir la complejidad del sistema.

La operación de la resta de (a - b) se representa por:

a – b = a + 10 n – 1 – b = 10 n – 1 + (a - b) = 10 n + ( a – b – 1).

Donde n es el número de cifras decimales de los números (a) y (b). De la ecuación


anterior se deduce que si el resultado de (a – b) es negativo o cero, no se produce
acarreo y el número obtenido queda representado mediante su complemento a nueve.
Si el resultado de (a – b) es positivo, se produce un acarreo que a de sumarse a aquel
para obtener la suma correcta.

Ejemplo 9.
Sean los números 78 y 32 y su representación en código BCD natural es

78 01111000
32 00110010
Los números negativos correspondientes representados en el convenio de
complemento a nueve son:

- 78 99 – 78 = 21
- 32 99 – 32 = 67

Y en la representación en BCD natural será: -78 00100001


-32 01100111

Ahora vamos a realizar la resta de (78 - 32), en el sistema decimal:

7 8 7 8
- 3 2 + 6 7
1 4 5 Aparece un acarreo que se le suma al resultado
+ 1 Corrección
4 6 4 6 Resultado correcto

Realizando la resta de (78 - 32), en el código BCD Natural:

7 8 0 1 1 1 1 0 0 0
- 3 2 + 0 1 1 0 0 1 1 1
1 1 0 1 1 1 1 1 Números no BCD
+ 0 1 1 0 0 1 1 0 Corrección
1 0 1 0 0 0 1 0 1
+ 1 Corrección
4 6 0 1 0 0 0 1 1 0 Resultado correcto

El resultado obtenido es (+ 46), porque hubo acarreo.

Realizando la resta de (32 – 78), en el sistema decimal:

3 2 3 2
- 7 8 + 2 1
- 4 6 5 3 Complemento a nueve de 46

Realizando la resta de (32 - 78), en el código BCD Natural:

3 2 0 0 1 1 0 0 1 0
- 7 8 + 0 0 1 0 0 0 0 1
- 4 6 0 1 0 1 0 0 1 1 Complemento a nueve de 46
El resultado obtenido es el complemento a nueve de 46, o sea, que el resultado es
(- 46), porque no hubo acarreo.

8.- Generador de complemento a nueve.

El diseño del circuito generador de complemento a nueve, puede ser de dos formas:

a) Circuito combinacional a partir de una tabla de verdad como se muestra en la


figura No. 2.

COMPLEMENTO
DIGITO
A9
0 0 0 0 1 0 0 1
0 0 0 1 1 0 0 0
0 0 1 0 0 1 1 1
0 0 1 1 0 1 1 0
0 1 0 0 0 1 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 0 1 1
0 1 1 1 0 0 1 0
1 0 0 0 0 0 0 1
1 0 0 1 0 0 0 0
1 0 1 0 * * * *
1 0 1 1 * * * *
1 1 0 0 * * * *
1 1 0 1 * * * *
1 1 1 0 * * * *
1 1 1 1 * * * *

Figura No. 2. Tabla de código BCD Natural con su complemento a nueve.

b) El complemento nueve de un dígito (a) se puede calcular invirtiendo el número y


sumándole 1010 y despreciando el acarreo (carry) si lo hay, lo cual se puede
realizar fácilmente con la ayuda de un sumador completo de 4 bits que se
estudiará más adelante.

9.- Código BCD Aiken.

Es un código ponderado (2421) y autocomplementario. Un código es


autocomplementario cuando la combinación correspondiente al complemento a 9 de N
es decir (9 – N) se obtiene invirtiendo la combinación correspondiente a N, o sea,
cambiando los unos por ceros y viceversa.
En efecto el número 3 se codifica mediante la combinación 0011 y el 6 (9-3) mediante
1100.

Esta propiedad es importante cuando en las computadoras se hacen operaciones


matemáticas internas con números decimales (en código binario) y la resta se hace
por medio de complemento a 9.

En la tabla de la figura No. 3, aparece el código BCD Aiken comparado con el BCD
Natural.

DIGITO CODIGO CODIGO


DECIMAL BCD Natural BCD Aiken
P3 P2 P1 P0 P3 P2 P1 P0
8 4 2 1 8 4 2 1
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1 0
3 0 0 1 1 0 0 1 1
4 0 1 0 0 0 1 0 0
5 0 1 0 1 1 0 1 1
6 0 1 1 0 1 1 0 0
7 0 1 1 1 1 1 0 1
8 1 0 0 0 1 1 1 0
9 1 0 0 1 1 1 1 1

Figura No. 3. Tabla de comparación entre códigos BCD natural y BCD Aiken.

Para construir la tabla BCD Aiken, basta notar que del 0 al 4 las palabras código,
son iguales a las del BCD Natural. A partir de ahí se debe aplicar la propiedad de
autocomplementariedad ya expuesta.

Entre más bits hayan por cada representación es más fácil detectar un error. Esto
hace ventajoso al código Aiken para detectar y corregir errores debido a sus cuatro
posiciones.

10.- Suma en el código BCD Aiken.

Como se va a efectuar una operación aritmética con números en código BCD, se


manejan en bloques de 4 bits.

Si al hacer la suma de cada bloque, el resultado es un número que no existe en código


BCD Aiken, se debe corregir así:

a) Si aparece acarreo, se debe corregir el resultado restándole (0110), lo que es lo


mismo que sumarle (1010).
b) Si el acarreo es cero, se debe corregir el resultado sumándole (0110).
Al hacer la suma de la corrección, ya no se tienen en cuenta los acarreos que puedan
aparecer.

Ejemplo 10.
Sumar 3 y 4 en código BCD Aiken

3 0 0 1 1
4 + 0 1 0 0
No existe en Aiken y no hubo acarreo, se debe
0 1 1 1 corregir sumándole 0110
+ 0 1 1 0
7 1 1 0 1 Resultado correcto

Ejemplo 11.
Sumar 1 y 2 en código BCD Aiken

1 0 0 0 1
2 + 0 0 1 0
Si existe en Aiken por lo cual es el resultado
3 0 0 1 1 correcto

Ejemplo 12.
Sumar 6 y 8 en código BCD Aiken

6 1 1 0 0
8 + 1 1 1 0
Resultado del primer bloque no existe en Aiken y
1 1 0 1 0 generó acarreo, se debe corregir restando 0110
- 0 1 1 0
14 1 0 1 0 0 Resultado correcto

Ejemplo 13.
Sumar 378 y 851 en código BCD Aiken

378 0 0 1 1 1 1 0 1 1 1 1 0
851 + 1 1 1 0 1 0 1 1 0 0 0 1
1 0 0 1 0 1 0 0 0 1 1 1 1
+ 1 0 1 0 Corrección
1229 1 0 0 1 0 0 0 1 0 1 1 1 1 Resultado correcto
Ejemplo 14.
Sumar 91 y 99 en código BCD Aiken
91 1 1 1 1 0 0 0 1
99 + 1 1 1 1 1 1 1 1
190 1 1 1 1 1 0 0 0 0 Resultado correcto

11.- Resta en el código BCD Aiken.

La resta se convierte en una suma, al aplicar el complemento a nueve del sustraendo


o numero negativo. Se aplican los mismos criterios que se aplican en la suma, o sea,
si al hacer la suma de cada bloque de 4 bits aparece un número que no existe en BCD
Aiken y su acarreo es un cero se debe corregir el resultado sumándole (0110), y si el
acarreo es un uno (1), se le debe restar (0110), lo que equivale a sumar (1010). Si el
acarreo es cero indica resultado negativo y estará complementado a nueve, y si es
uno indica resultado positivo y se le suma el acarreo al resultado.

Ejemplo 15.
Al número 3 restarle 5 en código BCD Aiken

3 0 0 1 1
-5 + 0 1 0 0
No existe en Aiken y acarreo = 0, se debe corregir
0 1 1 1 sumándole 0110
+ 0 1 1 0
-2 0 1 1 0 1 Resultado correcto (-2) en complemento a nueve

Ejemplo 16.
Al número 13 restarle 7 en código BCD Aiken.

13 0 0 0 1 0 0 1 1
-07 + 1 1 1 1 0 0 1 0
Resultado del primer bloque No
1 0 0 0 0 0 1 0 1 existe en Aiken y acarreo = 0, se
debe corregir sumándole 0110
+ 0 1 1 0
Resultado positivo. Se le debe
1 0 0 0 0 1 0 1 1 sumar el acarreo
+ 1
Resultado correcto (+ 06) en
06 0 0 0 0 1 1 0 0 complemento a nueve
12.- Código BCD 5421.

En la tabla de la figura No 4, aparece un código que aunque poco utilizado, también


es BCD ponderado.

DIGITO BCD 5421


DECIMAL 5 4 2 1
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 1 0 0 0
6 1 0 0 1
7 1 0 1 0
8 1 0 1 1
9 1 1 0 0

Figura No. 4. Tabla para el código BCD 5421.

13.- Código BCD Exceso 3.

Como su nombre lo indica, los códigos no ponderados son aquellos en los que cada
posición binaria no tiene asignado un peso. El más utilizado de todos es el código
BCD Exceso 3 representado en la tabla de la figura No. 5, donde se compara con el
código BCD Natural.

El código BCD Exceso 3 se relaciona con el BCD Natural y algunas veces se utiliza en
lugar de éste debido a que posee ventajas en ciertas operaciones aritméticas.

En éste código cada número decimal (N) se codifica mediante la combinación que le
corresponde a (N + 3) en el código binario natural y posee la propiedad de ser
autocomplementario también.

En la tabla de la figura No. 5, se nota que ambos códigos BCD, el Natural y el Exceso
3 solo emplean 10 de las 16 posibles combinaciones con 4 bits, además el Exceso-3
no usa los mismos grupos del BCD Natural.
DIGITO BCD BCD
DECIMAL Natural Exceso-3
0 0 0 0 0 0 0 1 1
1 0 0 0 1 0 1 0 0
2 0 0 1 0 0 1 0 1
3 0 0 1 1 0 1 1 0
4 0 1 0 0 0 1 1 1
5 0 1 0 1 1 0 0 0
6 0 1 1 0 1 0 0 1
7 0 1 1 1 1 0 1 0
8 1 0 0 0 1 0 1 1
9 1 0 0 1 1 1 0 0

Figura No. 5. Comparación entre códigos BCD Natural y BCD Exceso 3.

14.- Suma en código BCD Exceso 3.

a) La suma se realiza bajo las mismas reglas de la suma binaria.


b) Cuando el resultado de la suma es menor que 9, no se produce acarreo pero el
número obtenido está expresado en Exceso 6, por lo tanto es necesario restar 3
(0011) al número obtenido lo cual es equivalente a sumar (1101) y despreciar el
acarreo que se produzca.
c) En el caso de que la suma sea superior a 9, entonces se produce un acarreo y
el número obtenido estará en BCD natural por lo tanto hay que sumarle 3
(0011) para convertirlo a BCD exceso-3

Ejemplo 17.
Sumar 21 y 48 en código BCD Exceso 3

21 0 1 0 1 0 1 0 0
48 + 0 1 1 1 1 0 1 1
1 1 0 0 1 1 1 1 No hay acarreo ni en 1°, ni en 2° bloque
+ 1 1 0 1 1 1 0 1 Corrección
69 1 0 0 1 1 1 0 0 Resultado correcto

Ejemplo 18.
Sumar 78 y 96 en código BCD Exceso 3

78 1 0 1 0 1 0 1 1
96 + 1 1 0 0 1 0 0 1
1 0 1 1 1 0 1 0 0 Hay acarreo en 1° y 2° bloques
+ 0 0 1 1 0 0 1 1 Corrección
174 1 1 0 1 0 0 1 1 1 Resultado correcto.
Ejemplo 19.
Sumar 7 y 7 en código BCD Exceso 3

7 1 0 1 0
7 + 1 0 1 0
1 0 1 0 0 Hay acarreo en 1° bloque
+ 0 0 1 1 Corrección
14 1 0 1 1 1 Resultado correcto

15.- Resta en el código BCD Exceso 3.

Por ser este código autocomplementario, el complemento a 9 de los dígitos en código


BCD Exceso 3, se obtiene simplemente invirtiendo el número.

La resta en código BCD Exceso 3 es muy similar a la de BCD natural, con la única
diferencia que el generador de complemento a nueve es más sencillo.

Ejemplo 20.
Realizar las restas (53 –18) y (18 –53) en código BCD Exceso 3.

Los números 53 y 18 se codifican en BCD Exceso 3 de la siguiente forma:

53 10000110 - 53 01111001
18 01001011 - 18 10110100

a) La operación (53-18) en código BCD Exceso 3 será:

53 1 0 0 0 0 1 1 0
-18 + 1 0 1 1 0 1 0 0
1 0 0 1 1 1 0 1 0 Acarreo final indica resultado positivo
+ 1 Suma del acarreo
+ 0 0 1 1 1 1 0 1 Corrección
35 0 1 1 0 1 0 0 0 Resultado correcto

b) Se realiza ahora la resta (18 – 53) en código BCD Exceso 3:

18 0 1 0 0 1 0 1 1
-53 + 0 1 1 1 1 0 0 1
1 1 0 0 0 1 0 0
+ 1 1 0 1 0 0 1 1 Corrección
No acarreo al final indica resultado
-35 0 1 0 0 1 0 1 1 1 negativo representado en convenio de
complemento a nueve
16.- Bibliografía.

NELSON, V. P., NAGLE H. T., CARROLL B. D., IRWIN J. D. Análisis y Diseño de


Circuitos Lógicos Digitales. Editorial Prentice-Hall Internacional. 1996.

WAKERLY, Jhon F. Diseño digital: Principios y prácticas. Prentice-Hall Internacional.


1993.

MORRIS Mano. Lógica digital y diseño de computadores, Editorial Prentice-Hall


Internacional. 1979.

ALDANA M., Fernando. ESPARZA O., Rafael. MARTÍNEZ M., Pedro Manuel.
Electrónica Industrial: Técnicas Digitales. Marcombo Boixareu Editores. España, 1980.

HAYES, Jhon P.. Introducción al diseño lógico digital. Editorial Addison-Wesley


Iberoamericana.