> Gray | reflekterad | binär <

// Gray-kod – binärt talsystem där bara en bit ändras mellan efterföljande värden

0 tecken
0 tecken
[SINGLE-BIT]

Enhetsavstånd

Endast en bit ändras mellan två på varandra följande värden.

[ERROR-REDUCTION]

Felmindre

Minskar fel vid analog–till–digital‑omvandling.

[CYCLIC]

Cykel‑egenskap

Första och sista värdet skiljer sig också bara i en bit.

>> teknisk information

Hur Gray-kod fungerar:

Gray-kod (reflekterad binärkod) är ett binärt talsystem där två efterföljande värden bara skiljer sig åt i en enda bit. Den skapas genom att XOR‑operera varje bit med föregående bit. Detta gör koden mycket användbar i positionsgivare och för att minska fel i digitala system.

Exempel på Gray-kod:

Decimal | Binär | Gray-kod
0       | 0000  | 0000
1       | 0001  | 0001
2       | 0010  | 0011
3       | 0011  | 0010
4       | 0100  | 0110
5       | 0101  | 0111
6       | 0110  | 0101
7       | 0111  | 0100

Obs: endast 1 bit ändras mellan efterföljande Gray‑koder

Varför använda Gray-kod:

  • ▸Roterande encoders
  • ▸Karnaughdiagram
  • ▸Felkorrigering
  • ▸Digital kommunikation
  • ▸Positionsgivare

>> vanliga frågor

Vad är Gray-kod?

Gray-kod, även kallad reflekterad binärkod, är ett binärt kodningssystem där två efterföljande värden skiljer sig bara i en bit. Det används i digitala system för att undvika felaktiga mellanvärden under övergångar.

Hur konverterar jag från binärt till Gray-kod?

För att konvertera från binärt till Gray: 1) behåll den mest signifikanta biten (MSB) som den är, 2) XOR:a varje bit med föregående bit. Formel: G[i] = B[i] XOR B[i-1]. Till exempel blir binärt 1011 till Gray 1110.

Varför är Gray-kod bättre för encoders?

I vanlig binär kodning kan flera bitar ändras samtidigt, vilket ger tillfälligt ogiltiga värden. Gray-kod garanterar att endast en bit ändras åt gången och gör avläsningen från roterande encoders mer tillförlitlig.

Var används Gray-kod?

Gray-kod används i roterande encoders, förenkling med Karnaughdiagram, felkorrigering i digital kommunikation, genetiska algoritmer och A/D‑omvandlare.

// Snabbreferens

DecBinaryGray
0000000
1001001
2010011
3011010
4100110
5101111
6110101
7111100

// Kodexempel

Binary -> Gray   g = b ^ (b >> 1)
Gray -> Binary   b = g; for (m = g >> 1; m; m >>= 1) b ^= m;
Python           def to_gray(n): return n ^ (n >> 1)
                 def from_gray(g):
                     n = 0
                     while g: n ^= g; g >>= 1
                     return n
n bits           2^n codes, successive codes differ by exactly 1 bit (also 2^n - 1 -> 0)

>> Fler frågor

F: Vad är Gray-kod?

S: Gray-kod (reflekterad binärkod) är en representation där på varandra följande värden skiljer sig i exakt en bit. Den patenterades av Frank Gray på Bell Labs och är cyklisk: sista värdet skiljer sig också bara i en bit från det första.

F: Varför används den i vridgivare?

S: I vanlig binärkod ändras flera bitar samtidigt vid ett byte, t.ex. 011 till 100. Om sensorerna inte växlar helt synkront uppstår tillfälligt fel värde. I Gray-kod ändras en bit, så felet är högst en position.

F: Hur omvandlar jag Gray till binärt?

S: Högsta biten behålls; varje följande binär bit är föregående binära bit XOR aktuell Gray-bit. Som formel: b = g ^ (g >> 1) ^ (g >> 2) ^ …. Från binärt till Gray: g = b ^ (b >> 1).

Andra språk