The Сив код е последователност от двоични бройни системи, която е известна още като отразен двоичен код . Причината за извикването на този код като отразен двоичен код са първите N/2 стойности, сравнени с тези на последните N/2 стойности в обратен ред. В този код две последователни стойности се различават с един бит двоични цифри. Кодовете на Грей се използват в общата последователност от хардуерно генерирани двоични числа. Тези числа причиняват неясноти или грешки, когато се извършва преходът от едно число към неговото следващо. Този код просто решава този проблем, като променя само един бит, когато преходът е между числа.
Сивият код е много лек код, защото не зависи от стойността на цифрата, посочена от позицията. Този код се нарича още код на циклична променлива, тъй като преходът на една стойност към нейната последователна стойност носи промяна само на един бит.
Как да генерирам код на Грей?
Префиксът и методът за отразяване се използват рекурсивно за генериране на кода на Грей на число. За генериране на сив код:
- Намираме броя на битовете, необходими за представяне на число.
- След това намираме кода за 0, т.е. 0000, който е същият като двоичния.
- Сега вземаме предишния код, т.е. 0000, и променяме най-значимия бит от него.
- Извършваме този процес тайно, докато всички кодове не бъдат уникално идентифицирани.
- Ако чрез промяна на най-значимия бит намерим същия код, получен преди това, тогава вторият най-значим бит ще бъде променен и т.н.
Процес на генериране на Gray Code
Сива кодова таблица
Десетично число | Двоично число | Сив код |
---|---|---|
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 |
единадесет | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
петнадесет | 1111 | 1000 |