Observemos 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
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