Grayovo kódování (také Grayův kód) je způsob převodu dekadických čísel na čísla binární. Tento kód vytváří kódová slova tak, že se výsledné binární zápisy dvou sousedních čísel liší právě jedním bitem. Přesněji lze říci, že Hammingova vzdálenost (počet lišících se bitů) dvou kódových slov je právě jedna.
Toto kódování se používá nejčastěji pro kódování úhlu či pozice (sensory v mechanické myši, pozice stylusu na tabletu) a kódování vnitřních stavů sekvenčních obvodů.
| Číslo v dekadické soustavě | Číslo v binární soustavě | Grayův kód |
|---|---|---|
| 0 | …0 | …0 |
| 1 | …1 | …1 |
| 2 | …10 | …11 |
| 3 | …11 | …10 |
| 4 | …100 | …110 |
| 5 | …101 | …111 |
| 6 | …110 | …101 |
| 7 | …111 | …100 |
| 8 | …1000 | …1100 |
| 9 | …1001 | …1101 |
| 10 | …1010 | …1111 |
| 11 | …1011 | …1110 |
| 12 | …1100 | …1010 |
| 13 | …1101 | …1011 |
| 14 | …1110 | …1001 |
| 15 | …1111 | …1000 |
Digitální kombinační obvod, který převádí N-bitové binární číslo do Grayova kódu, lze realizovat pomocí N-1 logických hradel XOR:
rekodér z binárního do Grayova kódu
Digitální kombinační obvod, který převádí N-bitové binární číslo v Grayově kódu na standardní binární číslo, lze realizovat pomocí N-1 logických hradel XOR:
rekodér z Grayova do binárního kódu