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:

LukuBinäärikoodiGray-koodi
0000000
1001001
2010011
3011010
4100110
5101111
6110101
7111100

Esimerkki 4-bittisestä syklisestä Gray-koodista:

LukuBinäärikoodiGray-koodi
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100
810001100
910011101
1010101111
1110111110
1211001010
1311011011
1411101001
1511111000

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.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.