jueves, 3 de noviembre de 2016




Código BCD. Decimal codificado en Binario

Para poder compartir información, que está en formato digital, es común utilizar las representaciones binaria y hexadecimal. Hay otros métodos de representar información y una de ellas es el código BCD. Con ayuda de la codificación BCD es más fácil ver la relación que hay  entre un número decimal (base 10) y el númerocorrespondiente en binario (base 2)
El código BCD utiliza 4 dígitos binarios (ver en los dos ejemplos que siguen) para representar un dígito decimal (0 al 9). Cuando se hace conversión de binario a decimal típica no hay una directarelación entre el dígito decimal y el dígito binario.
Ejemplo 1: Conversión directa típica entre un número en decimal y uno binario. 8510 = 10101012. La representación el mismo número decimal en código BCD se muestra a la derecha.
Ejemplo 2: Conversión directa típica entre un número en decimal y uno binario. 56810 = 10001110002. La representación el mismo número decimal en código BCD se muestra a la derecha.
Como se puede ver, de los dos ejemplos anteriores, el número equivalente decimal no se parece a la representación en código BDC. Para poder obtener el equivalente código BCD de cada cifra de los números anteriores, se asigna un “peso” o “valor” según la posición que ocupa. Este “peso” o “valor” sigue el siguiente orden: 8 – 4 – 2 – 1. (Es un código ponderado). Del último ejemplo se observa que el número 5 se representa como: 0 1 0 1.
El primer “0” corresponde al 8, el primer “1” corresponde a 4, el segundo “0” corresponde a 2, y… elsegundo “1” corresponde a 1. De lo anterior: 0 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 5
Al código BCD que tiene los “pesos” o “valores” antes descritos se le llama: Código BCD natural. El código BCD cuenta como un número binario normal del 0 al 9, pero del diez (1010) al quince (1111) no son permitidos pues no existen, para estos números, el equivalente de una cifra en decimal. Este código es utilizado, entre otras aplicaciones, para la representación de las cifras de losnúmeros decimales en displays de 7 segmentos.

Notas: Los subíndices 2 y 10, se utilizan para acotar, en el primer caso que el número es binario y en el segundo caso que el número es decimal.



EL CÓDIGO GRAY 
Consiste en una ordenación de <math>2^n</math> números binarios de tal forma 
que cada número sólo tenga u...
Por tanto, para un código Gray de n bits se toma el correspondiente Gray de n-1 
bits, se le aplica simetría y se rellena ...
OTROS EJEMPLOS 
111000 
111000 
------ 
100100 
110101010001 
110101010001 
------------ 
101111111001 
GRAY A BINARI 
Hac...

Código de Exceso 3








El código de exceso 3 se relaciona con el BCD (Ver entrada Código BCD (Código decimal codificado en binario) y algunas veces se utiliza en lugar de éste debido a que posee ventajas en ciertas operaciones aritméticas. Deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número BCD 8421 mas 3.

El código de exceso 3 para un numero decimal se efectúa de la misma forma que el BCD, excepto que se suma el número 3 a cada dígito decimal antes de codificarlo en binario. Por ejemplo, para codificar el número decimal 4 en código de exceso 3 primero debemos sumar 3 y obtenemos 7. Luego el 7 se codifica en su equivalente binario de 4 bits, 0111.
Para poner otro ejemplo convirtamos el número 48 en representación en código de exceso 3:
La tabla siguiente contiene las representaciones en código BCD y de exceso 3 para los dígitos decimales. Nótese que ambos códigos solo emplean 10 de los 16 posibles grupos de códigos de 4 bits. Sin embargo, el código de exceso 3 no usa los mismos grupos de código. Para el código de exceso 3, los grupos de código no válidos son: 0000, 0001, 0010, 1101, 1110 y 1111.





CÓDIGO DE EXCESO 3

A pesar de ser un código binario sin peso, el código de exceso 3 guarda una estrecha relación con el código BCD 8421 por el hecho de que cada grupo de 4 bits solo pueden representar a un único dígito decimal (del 0 al 9), y deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número BCD 8421 mas 3.




1. Se separa al numero decimal en cada uno de sus dígitos.
2. Sumarle tres (3) a cada dígito decimal.
3. Convertir a BCD el número decimal obtenido.
4. El número obtenido es el equivalente en XS3 del número decimal.


Ejemplo: convertir el numero decimal 18 a su equivalente XS3.

Solución: primero le sumamos 3 a cada dígito.

1 8
+ 3 + 3
----- -----
4 11

luego cada resultado se transforma a BCD

4 = 0100

11 = 1001

Nota: En las conversiones de exceso 3 no se tiene en cuenta los códigos inválidos (1010, 1011, 1100, 1101, 1110, 1111) como vimos en el ejemplo anterior el número 11, el cual nos resultó de la suma de 8+3, se convirtió directamente al BCD 1001.


Para convertir un número BCD a código de exceso 3 tenemos en cuenta los siguientes pasos:

1. A partir de la izquierda separamos al código BCD en grupos de 4 bits.
2. Sumamos 00112 a cada grupo de 4 bits.
3. El resultado es el equivalente en XS3 del código BCD.


Ejemplo: Convertir el BCD 00101001 a XS3

Separamos en grupos de bits. 0010 1001

Sumamos 00112 a cada grupo

0010 1001
+ 0011 +0011
-------- -------
0101 1100

El código XS3 01011100 equivale al BCD 00101001


1. Dividimos a partir de la izquierda al número XS3 en grupos de 4 bits.
2. Convertimos a decimal cada grupo de 4 bits.
3. Restamos 3 a cada decimal.
4. El número obtenido es el equivalente decimal del número XS3.


Ejemplo : Convertir 10011010 XS3 a decimal

Separamos en 4 bits 1001 1010
Convirtiendo a decimal 1001 1010

1001 = 9
1010 = 10

restamos 3 a cada resultado

9 10
-3 -3
---- ----
6 7

el número 6710 equivale al XS3 10011010

bservemos lo siguiente:

El decimal 5 se representa en binario por 0101

El decimal 6 se representa en binario por 0110
¿Qué has notado?

Observa que con solo aumentar un nivel en la cuenta (del 5 al 6) dos bits cambiaron de estado (el tercer MSB y el LSB de ambos números), probablemente esto no signifique nada ni nos afectaría en lo mas mínimo sin embargo existen algunas situaciones en electrónica digital en el cual solo necesitamos que al incrementarse la cuenta en un nivel solo cambie de estado (de 0 a 1 o viceversa) uno y únicamente un solo bit.

La solución esta en el código Gray, un código binario sin peso que no tiene ninguna relación con el código BCD.

Así para el ejemplo que hemos venido analizando:

el decimal 5 en binario es 0101 y en código Gray es 0 1 1 1

el decimal 6 en binario es 0110 y en código Gray es 0 1 0 1

el color azul indica el bit que cambió de estado.

Pero, ¿cuales son los pasos que se deben llevar cabo para hacer la transformación a código Gray?

CONVERSIÓN DE NUMERO BINARIO A CÓDIGO GRAY


1. El MSB del numero binario será el mismo para el código Gray.
2. Sumar el MSB del numero binario al bit situado a su derecha inmediata y anotar el resultado del numero en código Gray que estamos formando.
3. Continuar sumando bits a los bits situados a la derecha y anotando las sumas; hasta llegar al LSB.
4. El número en código Gray tendrá el mismo número de bits que el número binario.


Ilustraremos mejor esta explicación con un ejemplo:

Ejemplo: convertir el numero binario 0010 a código Gray

convertir el numero binario 0010 a código Gray


Aquí finaliza la conversión dado que ya llegamos al LSB del numero binario.

Entonces el numero binario 0010 equivale al 0011 en código Gray


CONVERSIÓN DE CÓDIGO GRAY A BINARIO


1. El bit izquierdo de código Gray será el MSB del numero binario.
2. El bit obtenido es sumado al segundo bit de la izquierda del código Gray, y el resultado se anotara a la derecha del numero binario a formar.
3. Este resultado se le suma al bit situado a la derecha inmediata del ultimo bit que sumamos y el resultado será el otro bit del número binario (se ordena de izquierda a derecha).
4. Repetir el paso anterior hasta llegar al bit mas a la derecha del código Gray.
5. El número de bits del numero binario deberá coincidir con el número de bits del número en código Gray.


Ejemplo: convertir el número en código Gray 1001 a numero binario

convertir el número en código Gray 1001 a numero binario