logo

Pilkas kodas

The Pilkas kodas yra dvejetainių skaičių sistemų seka, kuri taip pat žinoma kaip atspindėtas dvejetainis kodas . Priežastis, kodėl šis kodas vadinamas atspindėtu dvejetainiu kodu, yra pirmosios N/2 reikšmės, palyginti su paskutinėmis N/2 reikšmėmis atvirkštine tvarka. Šiame kode dvi iš eilės einančios reikšmės skiriasi vienu dvejetainių skaitmenų bitu. Pilki kodai naudojami bendroje aparatinės įrangos generuojamų dvejetainių skaičių sekoje. Šie skaičiai sukelia neaiškumų arba klaidų, kai atliekamas perėjimas nuo vieno skaičiaus prie eilės. Šis kodas tiesiog išsprendžia šią problemą pakeisdamas tik vieną bitą, kai atliekamas perėjimas tarp skaičių.

Pilkas kodas yra labai lengvas svertinis kodas, nes jis nepriklauso nuo pozicijoje nurodyto skaitmens reikšmės. Šis kodas taip pat vadinamas cikliniu kintamojo kodu, nes vienos reikšmės perėjimas į nuoseklią vertę keičia tik vieną bitą.

Kaip sugeneruoti pilką kodą?

Priešdėlis ir atspindėjimo metodas naudojami rekursyviai generuojant pilkąjį numerio kodą. Norėdami generuoti pilką kodą:

  1. Randame bitų skaičių, reikalingą skaičiui pavaizduoti.
  2. Toliau randame kodą 0, ty 0000, kuris yra toks pat kaip dvejetainis.
  3. Dabar paimame ankstesnį kodą, ty 0000, ir pakeičiame reikšmingiausią jo bitą.
  4. Šį procesą atliekame atskirai, kol visi kodai nėra unikaliai identifikuoti.
  5. Jei pakeisdami reikšmingiausią bitą rasime tą patį kodą, gautą anksčiau, tada bus pakeistas antrasis pagal reikšmingumą bitas ir pan.
Pilkas kodas

Pilkojo kodo generavimo procesas

Pilkas kodas

Pilkos spalvos kodų lentelė

Dešimtainis skaičius Dvejetainis skaičius Pilkas kodas
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 m 1111
vienuolika 1011 m 1110
12 1100 1010 m
13 1101 1011 m
14 1110 1001
penkiolika 1111 1000