Dvejetainio į pilką kodą konverteris yra loginė grandinė, naudojama dvejetainiam kodui konvertuoti į jam lygiavertį pilką kodą. Padėjus MSB 1 žemiau ašies ir MSB 1 virš ašies ir atspindint (n-1) bitų kodą apie ašį po 2n-1eilučių, galime gauti n bitų pilką kodą.
4 bitų dvejetainio į pilką kodą konvertavimo lentelė yra tokia:
Dešimtainis skaičius | 4 bitų dvejetainis kodas | 4 bitų pilkas kodas |
---|---|---|
ABCD | G1G2G3G4 | |
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 |
4 bitų pilkame kode 3 bitų kodas atsispindi ašyje, nubrėžtoje po 24-1-1th=8theilė.
Kaip dvejetainį kodą konvertuoti į pilką kodą
- Pilkajame kode MSB visada bus toks pat kaip 1-asis duoto dvejetainio skaičiaus bitas.
- Norėdami atlikti 2ndpilko kodo bitą, atliekame išskirtinį arba (XOR) 1-ąjį ir 2-ąjįnddvejetainio skaičiaus bitas. Tai reiškia, kad jei abu bitai yra skirtingi, rezultatas bus vienas, rezultatas bus 0.
- Norėdami gauti 3rdpilko kodo bitą, turime atlikti išskirtinį arba (XOR) iš 2ndir 3rddvejetainio skaičiaus bitas. Procesas išlieka toks pat 4thšiek tiek pilkojo kodo. Paimkime pavyzdį, kad suprastume šiuos veiksmus.
Pavyzdys
Tarkime, kad turime dvejetainį skaičių 01101, kurį norime konvertuoti į pilką kodą. Norint atlikti šią konversiją, reikia atlikti šiuos veiksmus:
- Kaip žinome, 1ŠvGray kodo bitas yra toks pat kaip dvejetainio skaičiaus MSB. Mūsų pavyzdyje MSB yra 0, taigi MSB arba 1Švpilko kodo dalis yra 0.
- Toliau atliekame 1-ojo ir antrojo dvejetainio skaičiaus XOR operaciją. 1Švbitas yra 0, o 2ndbitas yra 1. Abu bitai yra skirtingi, todėl 2ndGray kodo bitas yra 1.
- Dabar atliekame 2 XORndbitas ir 3rddvejetainio skaičiaus bitas. 2ndbitas yra 1, o 3rdbitai taip pat yra 1. Šie bitai yra vienodi, todėl 3rdGrey kodo bitas yra 0.
- Dar kartą atlikite 3 XOR operacijąrdir 4thdvejetainio skaičiaus bitas. 3rdbitas yra 1, o 4thbitas yra 0. Kadangi jie skiriasi, 4thGray kodo bitas yra 1.
- Galiausiai atlikite 4 XORthbitas ir 5thdvejetainio skaičiaus bitas. 4thbitas yra 0, o 5thbitas yra 1. Abu bitai yra skirtingi, todėl 5thGray kodo bitas yra 1.
- Pilkas dvejetainio skaičiaus 01101 kodas yra 01011.
Pilkos kodo konvertavimas į dvejetainį kodą
Pilko į dvejetainį kodą konverteris yra loginė grandinė, kuri naudojama pilkajam kodui konvertuoti į lygiavertį dvejetainį kodą. Yra tokia grandinė, kuri naudojama pilkajam kodui konvertuoti į dvejetainį skaičių.
Visai kaip dvejetainio kodo konvertavimas į pilką kodą; tai taip pat labai paprastas procesas. Yra šie veiksmai, naudojami pilkajam kodui konvertuoti į dvejetainį.
- Kaip nuo dvejetainio iki pilkos, nuo pilkos iki dvejetainės, 1Švdvejetainio skaičiaus bitas yra panašus į Gray kodo MSB.
- 2nddvejetainio skaičiaus bitas yra toks pat kaip 1Švdvejetainio skaičiaus bitas, kai 2ndpilkojo kodo bitas yra 0; kitu atveju 2ndbitas pakeistas 1 bituŠvdvejetainio skaičiaus bitas. Tai reiškia, kad jei 1Švdvejetainio bitas yra 1, tada 2ndbitas yra 0, o jei jis yra 0, tada 2ndbūk 1.
- 2ndžingsnis tęsiamas visiems dvejetainio skaičiaus bitams.
Pilko kodo konvertavimo į dvejetainį pavyzdį
Tarkime, kad turime Gray kodą 01011, kurį norime konvertuoti į dvejetainį skaičių. Norėdami konvertuoti, turime atlikti šiuos veiksmus:
java atvejo pareiškimas
- 1-asis dvejetainio skaičiaus bitas yra toks pat kaip pilkojo kodo MSB. Gray kodo MSB yra 0, taigi dvejetainio skaičiaus MSB yra 0.
- Dabar dėl 2ndbitą, patikriname 2ndšiek tiek pilkojo kodo. 2ndPilko kodo bitas yra 1, taigi 2nddvejetainio skaičiaus bitas yra tas, kuris pakeistas skaičiumi 1Šv
- Kitas pilkojo kodo bitas yra 0; 3rdbitas yra toks pat kaip 2ndpilkojo kodo bitas, ty 1.
- 4thpilkojo kodo bitas yra 1; 4thdvejetainio skaičiaus bitas yra 0, tai yra pakeistas skaičius 3rd
- 5thpilkojo kodo bitas yra 1; 5thdvejetainio skaičiaus bitas yra 1; tai yra pakeistas skaičius 4thdvejetainio skaičiaus bitas.
- Taigi pilkojo kodo 01011 dvejetainis skaičius yra 01101.
4 bitų pilkojo kodo bitai laikomi G4G3G2G1. Dabar iš konversijų lentelės
The Karnaugh žemėlapiai (K žemėlapiai) G4, G3, G2,ir G1yra tokie: