Escolar Documentos
Profissional Documentos
Cultura Documentos
Código Gray
El código binario reflejado o código Gray, nombrado así en honor
del investigador Frank Gray, es un sistema de numeración binario en el Código Gray de dos bits
que dos valores sucesivos difieren solamente en uno de sus dígitos. 00 01 11 10
El código Gray fue diseñado originalmente para prevenir señales
ilegales (señales falsas o viciadas en la representación) de Código Gray de tres bits
o 4.2Gray a Base 2
5Referencias 0000
0001
Nombre[editar] 0011
El investigador de Laboratorios Bell Frank Gray inventó el 0010
término código binario reflejado cuando lo patentó en 1947, 0110
remarcando que éste "no tenía nombre reconocido aún".1 Él creó el 0111
nombre basándose en el hecho de que el código "puede ser construido
0101
a partir del código binario convencional por una suerte de 'proceso
reflejante'". 0100
Motivación[editar]
Las computadoras antiguas indicaban posiciones abriendo y cerrando interruptores. Utilizando tres
interruptores como entradas usando Base 2, estas dos posiciones estarían una después de la otra:
...
011
100
...
El problema con el código binario en base 2 es que con interruptores mecánicos, es realmente difícil
que todos los interruptores cambien al mismo tiempo. En la transición de los dos estados mostrados
arriba, tres interruptores cambian de sitio. En el lapso en el que los interruptores están cambiando,
se pueden presentar salidas de información espurias. Si las salidas mencionadas alimentan un
circuito secuencial, probablemente el sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que no existe
este problema:
tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben ser
sumados en base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta operación de
forma vertical como se muestra en el siguiente ejemplo
1010
1010
----
1111
Nótese que desde el 7 podría pasar a 0 con un solo cambio de switch (el más significativo pasa a
cero). Esta es la propiedad llamada "cíclica" del código de Gray.
Conversiones[editar]
Secuencia Binario Gray Secuencia Binario Gray
0 0000 0000 8 1000 1100
1 0001 0001 9 1001 1101
2 0010 0011 10 1010 1111
3 0011 0010 11 1011 1110
4 0100 0110 12 1100 1010
5 0101 0111 13 1101 1011
6 0110 0101 14 1110 1001
7 0111 0100 15 1111 1000
Base 2 a Gray[editar]
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica una
operación XOR con el mismo número desplazado un bit a la derecha, sin tener en cuenta el
acarreo.
Ejemplo: 1010 (Base 2) a gray
1010
1010
----
1111
0111
0111
------
0100
110101010001
110101010001
------------
101111111001
Gray a Base 2[editar]
Definimos un vector conteniendo los dígitos en gray y otro vector destinado a contener
los dígitos en Base 2
Luego resulta que: con la excepción de que , la cual se puede resumir como:
El dígito de más a la izquierda en Base 2 es igual al dígito de más a la izquierda en código gray
Lo primero es decir que: , por lo que para este caso: . Luego siguiendo con el
Referencias[editar]
1. Volver arriba↑ F. Gray. Pulse code communication, 17 de marzo de 1953 (archivado en nov
1947). Patente USPTO nº 2632058
2. Volver arriba↑ J. Breckman. Encoding Circuit, 31 de enero de 1956 (archivado en dic 1953). Patente
USPTO nº 2733432
3. ↑ Saltar a:a b E. A. Ragland et al. Direction-Sensitive Binary Code Position Control System, 11 de
febrero de 1958 (archivado oct 1953). Patente USPTO nº 2823345
4. Volver arriba↑ Knuth, Donald E. "Generating all n-tuples." The Art of Computer Programming,
Volumen 4A: Enumeration and Backtracking, pre-fascículo 2a, 15 de octubre de 2004. [1]
5. Volver arriba↑ K. W. Cattermole, Principles of Pulse Code Modulation, American Elsevier Publishing
Company, Inc., 1969, New York NY, ISBN 0-444-19747-8.