Gray-koodi
Tähän artikkeliin tai osioon ei ole merkitty lähteitä, joten tiedot kannattaa tarkistaa muista tietolähteistä. Voit auttaa Wikipediaa lisäämällä artikkeliin tarkistettavissa olevia lähteitä ja merkitsemällä ne ohjeen mukaan. |
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:
Luku | Binäärikoodi | Gray-koodi |
---|---|---|
0 | 000 | 000 |
1 | 001 | 001 |
2 | 010 | 011 |
3 | 011 | 010 |
4 | 100 | 110 |
5 | 101 | 111 |
6 | 110 | 101 |
7 | 111 | 100 |
Esimerkki 4-bittisestä syklisestä Gray-koodista:
Luku | Binäärikoodi | Gray-koodi |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
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.