Il codice Gray è un tipo di codice binario ciclico brevettato per la prima volta nel 1947, ma non ricevette il nome di codice Gray fino all’inizio degli anni ‘1950, nelle successive domande di brevetto. In particolare, il codice è un codice binario riflesso, il che significa che gli ultimi numeri nella stringa possono essere gli stessi dei numeri iniziali, ma in ordine inverso, consentendo così di sviluppare ed espandere l’utilità del codice binario standard o naturale. Frank Gray, il ricercatore dei Bell Labs da cui prende il nome il codice, ha sviluppato questo particolare sistema numerico binario per aiutare a controllare gli interruttori elettromeccanici. Oggi, il codice Gray viene utilizzato in una varietà di ambienti, in particolare nelle comunicazioni digitali in cui i segnali analogici devono essere convertiti in supporti digitali.
Durante le prime fasi di sviluppo del codice, l’attenzione si è concentrata principalmente sul funzionamento più efficace degli interruttori elettromeccanici. Gli interruttori meccanici che utilizzano il codice binario naturale possono essere difficili da leggere in termini di posizione. Diversi interruttori possono cambiare posizione contemporaneamente, con complicate posizioni di transizione. A seconda della fase di transizione, un interruttore potrebbe leggere in una posizione quando è effettivamente in uno stato di transizione, mentre si dirige verso un’altra posizione. Moltiplicata per più interruttori, una lettura errata della posizione dell’interruttore può causare errori a livello di sistema e false informazioni.
In alternativa, solo un interruttore cambia posizione alla volta quando si utilizza il codice Gray, il che elimina la possibilità di informazioni di posizione false o fuorvianti, poiché cambia solo un bit alla volta. Poiché lo sviluppo del codice è continuato per diversi decenni dopo l’introduzione iniziale di Gray, sono venute alla luce ulteriori applicazioni. Ad esempio, gli encoder rotativi e ottici utilizzano il codice Gray perché ogni sequenza o cambio di posizione differisce di un solo bit. Allo stesso modo, la correzione degli errori per la comunicazione digitale, gli algoritmi genetici e alcuni tipi di mappe utilizzano il codice Gray, anche a causa della proprietà di modifica del singolo bit associata al codice.
Un codice binario riflesso simile è stato utilizzato alla fine del 1800 in telegrafia. Anche prima, i matematici usavano il codice binario riflesso per risolvere complesse questioni matematiche o enigmi simili alla Torre di Hanoi e agli antichi enigmi cinesi ad anello. Sebbene utilizzati, tali codici binari non furono standardizzati, brevettati o altrimenti ritenuti di uso proprietario fino al lavoro di Gray alla fine degli anni ‘1940 e all’inizio degli anni ‘1950. Bell Labs, utilizzando uno strumento a tubo a vuoto inventato da Frank Gray, brevettò il primo dispositivo in cui i segnali analogici venivano convertiti in codice binario riflesso. Nella domanda di brevetto del 1953 per il dispositivo, noto come tubo di comunicazione a codice a impulsi o tubo PCM, i Bell Labs hanno fatto riferimento ufficialmente al codice Gray per la prima volta.