Kod Graya, zwany również kodem refleksyjnym – dwójkowy kod bezwagowy niepozycyjny, który charakteryzuje się tym, że dwa kolejne słowa kodowe różnią się tylko stanem jednego bitu. Jest również kodem cyklicznym, bowiem ostatni i pierwszy wyraz tego kodu także spełniają wyżej wymienioną zasadę.

Kodem Graya długości n jest ciąg wszystkich różnych ciągów n cyfr {0,1}, ustawionych tak, że dwa kolejne ciągi cyfr różnią się dokładnie jedną z nich.

Używa się go w przetwornikach analogowo-cyfrowych, szczególnie w systemach gdzie występują po sobie kolejne wartości np. czujniki położenia/obrotu. Kodów Graya można używać do etykietowania pojedynczych procesorów w sieci będącej hiperkostką.

Rozszerzanie kodu Graya Rozszerzanie kodu Graya o 1 bit przeprowadza się według następującego algorytmu: Dopisz te same słowa kodowe, ale w odwrotnej kolejności (odbicie lustrzane) Do początkowych wyrazów dopisz bit o wartości zero, natomiast do odbitych lustrzanie bit o wartości 1.

Przykład konstruowania kodu 4-bitowego kod 1-bitowy odbicie lustrzane dopisanie zer i jedynek 01 011000011110

kod 2-bitowy odbicie lustrzane dopisanie zer i jedynek 00011110 0001111010110100000001011010110111101100