Il codice Gray è un codice a distanza unitaria. La distanza fra due numeri è definita come il numero di cifre diverse che essi hanno quando vengono confrontati bit a bit. Siccome il codice Gray ha distanza unitaria vuol dire che due qualunque numeri successivi di questo codice differiranno soltanto per un bit.
Questa proprietà è sfruttata per esempio nelle mappe di Karnaugh perchè, se si numerano in questo modo le celle, esse differiscono per un solo bit e sappiamo, dall'algebra di Boole, che se due mintermini differiscono per un solo bit, il bit che varia si assorbe consentendo una semplificazione.
Un altro esempio è dato dagli encoder assoluti. Gli encoder assoluti sono costituiti da un disco diviso in settori. I settori sono adiacenti ed ogni settore è numerato progressivamente in codice Gray. Due posizioni adiacenti differiscono di un solo bit pertanto, in fase di lettura di una posizione dubbia, posso sbagliare solo su quel bit minimizzando l'errore. Se la numerazione avvenisse in binario avrei delle posizioni adiacenti dove tutti i bit differiscono. Per esempio da 3 -> 4, in binario 011 -> 100. Come si può notare tutti i bit variano. In caso di posizione dubbia ho la possibilità di sbagliare l'interpretazioine di tutti i bit e questo ovviamente non va bene.