Código Gray

El código Gray es uno de los códigos cíclicos más comunes y esto es debido a las siguientes características:

– Cambia solamente uno de sus bits al pasar a la siguiente posición, es decir, el cambio entre dos números progresivos es de un bit.
– Facilita la conversión a la forma binaria.

Además, este código suele emplearse en codificadores de desplazamiento angular con el eje óptico o mecánico, es decir, emplea un tipo de rueda codificadora que presenta posiciones sucesivas, cubriendo la superficie de un disco, cada una de las cuales está representada por una nueva palabra; el código de Gray admite ambigüedad en una posición.

En la tabla se muestra la equivalencia para los números decimales 0 a 15, del código Gray, el sistema decimal y del binario puro. A todo número binario le corresponde una representación en el código Gray, por lo que la lista de equivalencias indicadas sólo tiene carácter ilustrativo.

A partir de la tabla anterior se puede observar que entre cada dos palabras cualesquiera sucesivas del código Gray, solamente cambia un bit. Esto no ocurre en el sistema binario; al pasar del decimal 7 al 8, cambian los cuatro bits del código binario, mientras que solamente cambia un bit en el código Gray. Al pasar de decimal 9 al 10, y el 2 de 0 a 1, es decir, se producen dos cambios, mientras que en el código Gray se pasa de 1101 a 1111 con un sólo cambio, el del bit 21 de 0 a 1.

Para convertir la palabra representada en código Gray a su forma binaria, debe empezarse primeramente por la conversión del bit más significativo (BMS). En binario, el bit menos significativo es el 20y el bit más significativo es el más alto en la posición ponderada (para cuatro bits, es el 23). Un ejemplo de un número binario y de su forma Gray equivalente es estando el BMS a la izquierda.

Para hacer la conversión, se repite en la forma binaria el mismo bit que aparece en la forma Gray hasta alcanzar el primer 1, que se repite también. En nuestro ejemplo, la forma Gray empieza por 1, el cual se repite como primer bit (BMS) de la forma binaria. Se sigue repitiendo este bit, en el código binario, esperando que los siguientes bits, en la forma Gray, sean 0 (una posición en el ejemplo).

Para cada 1 que aparezca a continuación (después del primero) en la forma de Gray, se cambia el bit correspondiente, de la palabra codificada en binario, respecto del que le precede en la forma binaria. El segundo 1 de la forma Gray indica cambio de bit en la forma binaria; como anteriormente era 1 pasa a ser 0. De acuerdo con esta regla, el siguiente 1 de la forma Gray indica el cambio del bit anterior (0) a 1. El siguiente 0 de la forma Gray significa que se mantiene el bit precedente, de la forma binaria, repitiéndose de nuevo el 1. Este procedimiento se reitera para el resto de la palabra.

Cuando aparece un 1 en la forma Gray se produce un cambio del bit precedente de la forma binaria (cualquier que fuese); un 0 mantiene el bit de la forma binaria como estaba.

El procedimiento para convertir una palabra binaria en su forma Gray es sencillo. La regla cosiste en comparar cada par de bits sucesivos (empezando con el Bit Más Significativo). Si son iguales se escribe un 0 en la forma Gray y si son diferentes se escribe un 1. Al empezar la comparación el primer bit se compara con cero.

Fuente: Apuntes de Arquitectura de computadoras de la FCA de la UNAM