Gray-koodi

Gray-koodilla tarkoitetaan lukujen  (missä  on positiivinen kokonaisluku) koodaamista binäärisillä symboleilla (biteillä) siten, että lukuesityksestä seuraavaan siirryttäessä täsmälleen yksi bitti vaihtaa tilaansa. Toisin sanoen peräkkäisten lukuesitysten välinen Hammingin etäisyys on yksi. Mikäli ensimmäisen ja viimeisen koodatun luvun välinen Hammingin etäisyys on yksi, Gray-koodi on syklinen.

Esimerkki kolmen bitin syklisestä Gray-koodista:

Esimerkki 4-bittisestä syklisestä Gray-koodista:

Matemaattisessa mielessä -pituinen Gray-koodi antaa kauppamatkustajan ongelman ratkaisun -ulotteisessa hyperkuutiossa, kun verkon solmupisteitä (kaupungit) vastaavat kuution kulmat ja jänteitä (tiet) kuution särmät.

Lukua  vastaava Gray-koodi saadaan yksinkertaisesti laskemalla biteittäinen XOR-operaatio (poissulkeva TAI-operaatio) lukujen  ja  binääriesityksistä.

Esimerkiksi GRAY()=GRAY()=XOR(,)= .

Myös käänteinen operaatio, luvun binääriesityksen laskeminen Gray-koodin perusteella, onnistuu biteittäisillä binäärioperaatioilla helposti. Tällöin pitää vain jakaa Gray-koodiesitystä toistuvasti luvulla 2 (siirto vähemmän merkitsevien bittien suuntaan), kunnes saadaan nolla ja ottaa näin saaduista esityksistä biteittäinen XOR-operaatio.

Esimerkiksi INVERSEGRAY()=XOR(,,)==.

Gray-koodeja käytetään hyvin yleisesti erilaisten mittaus- ja säätöjärjestelmien toteuttamisessa. Gray-koodin käytön etuna binäärilukujärjestelmään verrattuna on muun muassa se, että mittauslaitteiden rajapintaefektien vaikutukset mittaustuloksiin minimoituvat.

Koodausmenetelmät
Matemaattinen logiikka