El término "Código de Gray" se refiere a una progresión binaria de números codificados donde los términos sucesivos solo difieren en una sola posición de bit. Fue nombrado por Frank Gray, quien ideó el código de Gray reflejado en binario utilizado para convertir señales analógicas en números de cadena binarios.
En una secuencia dada de enteros de 0 a 2 ^ N - 1, expresada como una cadena binaria de longitud N donde los términos consecutivos varían en una posición de 1 bit, la serie de enteros se puede recorrer invirtiendo un bit a la vez. Esto se conoce como la "propiedad de adyacencia" de un código gris. Algunas de las aplicaciones prácticas de un código de Gray incluyen resolver la torre de Hanoi y el baguenaudier.