IL Codice grigio è una sequenza di sistemi di numeri binari, nota anche come codice binario riflesso . Il motivo per cui questo codice viene chiamato codice binario riflesso sono i primi N/2 valori confrontati con quelli degli ultimi N/2 valori in ordine inverso. In questo codice, due valori consecutivi differiscono di un bit di cifre binarie. I codici Gray vengono utilizzati nella sequenza generale dei numeri binari generati dall'hardware. Questi numeri causano ambiguità o errori quando viene effettuata la transizione da un numero al successivo. Questo codice risolve semplicemente questo problema modificando solo un bit quando viene eseguita la transizione tra i numeri.
Il codice grigio è un codice molto leggero perché non dipende dal valore della cifra specificata dalla posizione. Questo codice è anche chiamato codice di variabile ciclica poiché la transizione di un valore al suo valore successivo comporta una modifica di un solo bit.
Come generare il codice Gray?
Il prefisso e il metodo reflect vengono utilizzati ricorsivamente per generare il codice Gray di un numero. Per generare il codice Gray:
- Troviamo il numero di bit necessari per rappresentare un numero.
- Successivamente troviamo il codice per 0, cioè 0000, che è uguale a binario.
- Ora prendiamo il codice precedente, cioè 0000, e ne modifichiamo la parte più significativa.
- Eseguiamo questo processo in modo solitario finché tutti i codici non vengono identificati in modo univoco.
- Se cambiando il bit più significativo ritroviamo lo stesso codice ottenuto in precedenza, allora verrà cambiato il secondo bit più significativo e così via.
Processo di generazione del codice Gray
Tabella dei codici grigi
Numero decimale | Numero binario | Codice grigio |
---|---|---|
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 |
undici | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
quindici | 1111 | 1000 |