Le terme "code Gray" fait référence à une progression binaire de nombres codés où les termes successifs ne diffèrent que par une seule position de bit. Il a été nommé d'après Frank Gray, qui a conçu le code Gray réfléchi binaire utilisé pour convertir des signaux analogiques en nombres de chaînes binaires.
Dans une séquence donnée d'entiers de 0 à 2^N - 1, exprimée sous la forme d'une chaîne binaire de N longueur où les termes consécutifs varient d'une position de bit, la série d'entiers peut être parcourue en inversant un bit à la fois. C'est ce qu'on appelle la "propriété de contiguïté" d'un code Gray. Certaines des applications pratiques d'un code Gray incluent la résolution de la tour de Hanoï et de baguenaudier.