Harmaa koodi on eräänlainen syklinen binäärikoodi, joka patentoitiin ensimmäisen kerran vuonna 1947, mutta sille ei annettu Greyn koodin nimeä vasta 1950 -luvun alussa, myöhemmissä patenttihakemuksissa. Erityisesti koodi on heijastunut binäärikoodi, mikä tarkoittaa, että merkkijonon viimeiset numerot voivat olla samat kuin alkunumerot, mutta päinvastaisessa järjestyksessä, mikä mahdollistaa tavanomaisen tai luonnollisen binaarikoodin hyödyntämisen ja laajentamisen. Frank Gray, Bell Labsin tutkija, jolle koodi on nimetty, kehitti tämän nimenomaisen binäärilukujärjestelmän helpottaakseen sähkömekaanisten kytkimien ohjaamista. Nykyään harmaata koodia käytetään erilaisissa ympäristöissä, erityisesti digitaalisessa viestinnässä, jossa analogiset signaalit on muunnettava digitaalisiksi välineiksi.
Koodin kehitysvaiheessa keskityttiin ensisijaisesti sähkömekaanisten kytkimien tehokkaampaan toimintaan. Luonnollista binaarikoodia käyttäviä mekaanisia kytkimiä voi olla vaikea lukea sijainnin kannalta. Useat kytkimet voivat vaihtaa asentoa kerralla monimutkaisilla siirtymäasennoilla. Siirtymävaiheesta riippuen kytkin voi lukea yhdessä asennossa, kun se on todellisuudessa siirtymätilassa, matkalla toiseen asentoon. Kerrottuna useilla kytkimillä, kytkimen asennon virheellinen lukeminen voi johtaa järjestelmän laajuisiin virheisiin ja vääriin tietoihin.
Vaihtoehtoisesti vain yksi kytkin vaihtaa asentoa kerrallaan käytettäessä harmaata koodia, mikä poistaa väärien tai harhaanjohtavien sijaintitietojen mahdollisuuden, koska vain yksi bitti muuttuu kerrallaan. Kun koodin kehittäminen jatkui useita vuosikymmeniä Grayn ensimmäisen käyttöönoton jälkeen, lisäsovelluksia tuli esiin. Esimerkiksi pyörivät ja optiset kooderit käyttävät harmaata koodia, koska jokainen sekvenssi tai sijainnin muutos eroaa vain yhdellä bitillä. Samoin digitaalisen viestinnän, geneettisten algoritmien ja tietyntyyppisten karttojen virheenkorjaus käyttää harmaata koodia, mikä johtuu myös koodiin liittyvästä yhden bitin muutosominaisuudesta.
Samanlaista heijastunutta binäärikoodia käytettiin 1800 -luvun lopulla telegrafiassa. Jo aiemmin matemaatikot käyttivät heijastettua binaarikoodia ratkaistakseen monimutkaisia matemaattisia kysymyksiä tai arvoituksia, jotka ovat samanlaisia kuin Hanoin torni ja muinaiset kiinalaiset rengaspalapelit. Vaikka tällaisia binäärikoodeja käytettiin, niitä ei standardoitu, patentoitu tai muutoin katsottu omistuskäyttöön ennen Grayn työtä 1940 -luvun lopulla ja 1950 -luvun alussa. Bell Labs patentoi Frank Grayn keksimän tyhjiöputkivälineen käyttämällä ensimmäistä laitetta, jossa analogiset signaalit muutettiin heijastuneeksi binäärikoodiksi. Pulssikoodiviestintäputkena tai PCM -putkena tunnetun laitteen vuoden 1953 patenttihakemuksessa Bell Labs viittasi ensimmäistä kertaa virallisesti Gray -koodiin.