De Grijze code is een reeks binaire getalsystemen, ook wel bekend als gereflecteerde binaire code . De reden om deze code de gereflecteerde binaire code te noemen, is dat de eerste N/2-waarden worden vergeleken met die van de laatste N/2-waarden in omgekeerde volgorde. In deze code verschillen twee opeenvolgende waarden met één bit van binaire cijfers. Grijze codes worden gebruikt in de algemene volgorde van door hardware gegenereerde binaire getallen. Deze getallen veroorzaken onduidelijkheden of fouten wanneer de overgang van het ene getal naar het volgende getal is voltooid. Deze code lost dit probleem eenvoudig op door slechts één bit te veranderen wanneer de overgang tussen getallen is voltooid.
De grijze code is een zeer lichte code omdat deze niet afhankelijk is van de waarde van het cijfer dat door de positie wordt gespecificeerd. Deze code wordt ook wel een cyclische variabele code genoemd, omdat de overgang van één waarde naar de daaropvolgende waarde een verandering van slechts één bit met zich meebrengt.
Hoe grijze code genereren?
De prefix- en reflect-methode worden recursief gebruikt om de Gray-code van een getal te genereren. Voor het genereren van grijze code:
- We vinden het aantal bits dat nodig is om een getal weer te geven.
- Vervolgens vinden we de code voor 0, dat wil zeggen 0000, wat hetzelfde is als binair.
- Nu nemen we de vorige code, dat wil zeggen 0000, en veranderen het meest significante deel ervan.
- We voeren dit proces teruggetrokken uit totdat niet alle codes uniek zijn geïdentificeerd.
- Als we door het veranderen van het meest significante bit dezelfde code vinden die we eerder hebben verkregen, dan zal het op één na meest significante bit worden gewijzigd, enzovoort.
Proces voor het genereren van grijze code
Grijze codetabel
Decimaal getal | Binair getal | Grijze 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 |
elf | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
vijftien | 1111 | 1000 |