Circuit Shorts: Binair naar Gray code
op
Sommige gray-coderingen, die 'cyclisch' zijn, hebben het extra voordeel dat wanneer ze 'rond gaan' - van de eind naar de begintoestand - er ook slechts één bitverandering is. Dat wil zeggen, het eerste en laatste nummer verschillen door een enkele bitwisseling. De Wikipedia-pagina voor gray code is fascinerend en het lezen waard. Op deze pagina vond ik code voor het converteren van gray-code naar binair. Iets zoals dit:
num_gray = num_bin ^ (num_bin >> 1)
Waar ^ XOR is en >> is 'één keer naar rechts verschuiven'. Best handig, en gemakkelijk te onthouden voor de volgende keer dat je op een feestje wordt gevraagd om de gray-code van 10010110. Je zou snel 11011101 kunnen beantwoorden na het raadplegen van een krabbel op een servetje. Hulde voor jou!
Ik heb me afgevraagd hoe het logische circuit eruit zou kunnen zien. Ik ben er niet zo goed in om de bovenstaande code rechtstreeks naar poorten te converteren, dus keek ik naar de bits.

We zien dat in het geval van een enkele bit - in het geel - het binaire en gray getal hetzelfde zijn. In hardware is dat maar een draad. Voor twee bits - in blauw - zien we dat de meest significante bit (MSB) G1 = B1 is, en de minst significante bit (LSB) is G0 = NOT B0. Kijkend naar drie bits - in paars - G2 = B2 zoals voorheen, maar de ontkenningsregel werkt niet meer. We hebben een nieuwe strategie nodig. Als we naar meer uitgebreide patronen zoeken, kunnen we opmerken dat Gn = Bn XOR Bn + 1 voor GN-1 tot G0 en GN = BN!
Ik heb misschien de naïeve benadering gekozen om dit probleem op te lossen. Zou jij het beter of anders doen?
Meer over circuitontwerp, gray code en meer
Geïnteresseerd in circuitontwerp en aanverwante onderwerpen?- Artikelen over Circuit ontwerp, ElektorMagazine.com.
- S. Drimer, "Circuit Shorts: The Flavors of Binary-Coded Decimals (BCD), "18 maart 2021.
- Abonneer u op het Tag "Circuit Shorts" voor updates wanneer nieuwe artikelen worden gepubliceerd.
Een snelle prototyping-oplossing nodig? Kijk eens naar ElektorPCB4Makers. U kunt in drie werkdagen twee printplaat prototypes geleverd krijgen!
Vertaling: Hans Adams


Discussie (4 opmerking(en))