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 |