Il termine "codice Gray" si riferisce a una progressione binaria di numeri codificati in cui i termini successivi differiscono solo per una singola posizione di bit. È stato chiamato in onore di Frank Gray, che ha ideato il codice Gray riflesso binario utilizzato per convertire segnali analogici in numeri di stringa binari.
In una data sequenza di numeri interi da 0 a 2 ^ N - 1, espressa come una stringa binaria di lunghezza N dove i termini consecutivi variano di 1 bit, la serie di numeri interi può essere attraversata invertendo un bit alla volta. Questo è indicato come "proprietà adiacenza" di un codice Gray. Alcune delle applicazioni pratiche di un codice Gray comprendono la risoluzione della torre di Hanoi e il baguenaudier.