The Sivi kod je niz binarnih brojevnih sustava, koji je također poznat kao reflektirani binarni kod . Razlog za pozivanje ovog koda kao reflektiranog binarnog koda je prvih N/2 vrijednosti u usporedbi s onima zadnjih N/2 vrijednosti obrnutim redoslijedom. U ovom kodu, dvije uzastopne vrijednosti razlikuju se za jedan bit binarnih znamenki. Grayevi kodovi koriste se u općem nizu hardverski generiranih binarnih brojeva. Ovi brojevi uzrokuju nejasnoće ili pogreške kada se izvrši prijelaz s jednog broja na njegov sljedeći. Ovaj kod jednostavno rješava ovaj problem promjenom samo jednog bita kada je prijelaz između brojeva učinjen.
Sivi kod je vrlo malen kod jer ne ovisi o vrijednosti znamenke određene pozicijom. Ovaj se kod također naziva kodom cikličke varijable jer prijelaz jedne vrijednosti u njezinu uzastopnu vrijednost nosi promjenu samo jednog bita.
Kako generirati Grayev kod?
Metoda prefiksa i refleksije rekurzivno se koriste za generiranje Grayeva koda broja. Za generiranje sivog koda:
- Nalazimo broj bitova potrebnih za predstavljanje broja.
- Zatim pronalazimo kod za 0, tj. 0000, što je isto što i binarni.
- Sada uzimamo prethodni kod, tj. 0000, i mijenjamo njegov najvažniji dio.
- Ovaj postupak provodimo potajno sve dok svi kodovi nisu jedinstveno identificirani.
- Ako promjenom bita najveće važnosti pronađemo isti prethodno dobiveni kod, tada će se promijeniti bit druge važnosti i tako dalje.
Proces generiranja Gray Code
Tablica sivih kodova
| Decimalni broj | Binarni broj | Sivi kod |
|---|---|---|
| 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 |
| jedanaest | 1011 | 1110 |
| 12 | 1100 | 1010 |
| 13 | 1101 | 1011 |
| 14 | 1110 | 1001 |
| petnaest | 1111 | 1000 |