2 bites Gray-kód
00
01
11
10
3 bites Gray-kód
000
001
011
010
110
111
101
100
4 bites Gray-kód
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000

A Gray-kód olyan bináris kódsorozat, amelynél az egymás után következő kódszavak csak egy karakterben térhetnek el egymástól. Más kifejezéssel élve a Hamming-távolságuk egy. Ennek egyik előnye, hogy hibajavításkor egy hibát redundancia vagy hozzáadott bitek nélkül lehet észlelni. Használatos többek között logikai áramkörökben léptetés kódolására.

Gray szabadalmi leírásának részlete

Nevét Frank Gray után kapta, aki 1947-ben alkalmazta, majd később szabadalmaztatta is az ezen az elven működő léptető áramkörét.

Bináris számok esetén, mikor plusz egy helyértéket kell felvenni, két érték között sok bit megváltozik. A Gray-kód segítségével ez könnyen elkerülhető.

Dec  Gray   Bináris kód
 0   000    000
 1   001    001
 2   011    010
 3   010    011
 4   110    100
 5   111    101
 6   101    110
 7   100    111
Gray kód előállításának első lépései.

Pozíció-kódolók szerkesztés

Forgójeladó 3 bites, binárisan visszavert Gray-kóddal (BRGC) szögmérő eszközökhöz. A Gray-kód abszolút forgó jeladó 13 sávval. A tetején látható a ház, a megszakító lemez és a fényforrás; alul látható az érzékelőelem és a tartóelemek. A Gray-kódokat pozíció-kódolókban (lineáris kódolók és forgó jeladók) használják, előnyben részesítve az egyszerű bináris kódolást. Ezzel elkerülhető annak a lehetősége, hogy ha több bit megváltozik a szög bináris ábrázolásánál, a bitek egy része megváltozik mások előtt. Eredetileg a kódmintázat elektromosan vezető, támogatott (forgó jeladó) egy szigetelőlemezen. Mindegyik pályának volt egy saját, álló fémrugós érintkezése; még egy érintkezés kapcsolódott a mintához. Ezt a közös érintkezést a mintázathoz kapcsolták, ameddig a pályaérintkezők pihentek a vezetőképen. Azonban a csúszó érintkezők elhasználódnak, és karbantartást igényelnek, ezért gyakran alkalmaznak nem érintkező érzékelőket, például optikai vagy mágneses érzékelőket. Függetlenül attól, hogy az érintkezők összehangolásakor és a minta pontosságában óvatosak-e, egy természetes bináris kód hibát okozhat meghatározott lemezhelyeken, mivel lehetetlen az összes bit megváltoztatása pontosan ugyanúgy, ahogy a lemez forgatja. Ugyanez igaz egy optikai jeladóra; az átlátszatlan és átlátszó közötti átmenet nem hajtható végre egyidejűleg bizonyos pontos pozíciók esetén. A rotációs kódolók kihasználják a szürke kódok ciklikus jellegét, mivel a szekvencia egymást követő pozíciói csak egy bitgel különböznek egymástól. Ez azt jelenti, hogy az A állapotról a B állapotra való átmenet esetében az időzítési eltérések csak akkor befolyásolják az A → B átmenetet, ha egy vagy több (legfeljebb N-1, N-bites kódszót tartalmazó) amint ez akkor történik, ha standard bináris kódot használtak.