> Gray | reflektert | binær <

// Gray-kode – binært tallsystem der bare én bit endres mellom påfølgende verdier

0 tegn
0 tegn
[SINGLE-BIT]

Enhetsavstand

Kun én bit endres mellom to påfølgende verdier.

[ERROR-REDUCTION]

Feilreduksjon

Reduserer feil i analog-til-digital-konvertering.

[CYCLIC]

Syklisk egenskap

Første og siste verdi skiller seg bare i én bit.

>> teknisk info

Hvordan Gray-kode fungerer:

Gray-kode (reflektert binærkode) er et binært tallsystem der to påfølgende verdier bare skiller seg i én bit. Koden dannes ved å XOR’e hver bit med den forrige. Denne egenskapen gjør den ideell for posisjonsenkodere og reduksjon av feil i digitale systemer.

Eksempler på Gray-kode:

Desimal | Binær | Gray-kode
0       | 0000  | 0000
1       | 0001  | 0001
2       | 0010  | 0011
3       | 0011  | 0010
4       | 0100  | 0110
5       | 0101  | 0111
6       | 0110  | 0101
7       | 0111  | 0100

Merk: Bare 1 bit endres mellom påfølgende Gray-koder

Hvorfor bruke Gray-kode:

  • ▸Roterende enkodere
  • ▸Karnaugh-diagrammer
  • ▸Feilkorreksjon
  • ▸Digital kommunikasjon
  • ▸Posisjonssensorer

>> ofte stilte spørsmål

Hva er Gray-kode?

Gray-kode, også kalt reflektert binærkode, er et binært system der to påfølgende verdier kun skiller seg i én bit. Det brukes for å unngå tvetydige mellomtilstander i digitale systemer.

Hvordan konverterer jeg fra binær til Gray-kode?

For å konvertere binær til Gray: 1) behold MSB (mest signifikante bit) som den er, 2) XOR hver bit med den forrige. Formel: G[i] = B[i] XOR B[i-1]. For eksempel blir binær 1011 til Gray 1110.

Hvorfor er Gray-kode bedre for enkodere?

I vanlig binært tallsystem kan flere biter endres samtidig, noe som kan gi midlertidig feilaktige verdier. Gray-kode sørger for at kun én bit endres om gangen og gjør avlesninger fra roterende enkodere mer stabile.

Hvor brukes Gray-kode?

Gray-kode brukes i roterende enkodere, forenkling med Karnaugh-diagrammer, feilkorreksjon i digital kommunikasjon, genetiske algoritmer og A/D-omformere.

// Hurtigreferanse

DecBinaryGray
0000000
1001001
2010011
3011010
4100110
5101111
6110101
7111100

// Kodeeksempler

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)

>> Flere spørsmål

S: Hva er Gray-kode?

S: Gray-kode (reflektert binærkode) er en representasjon der etterfølgende verdier skiller seg i nøyaktig én bit. Den ble patentert av Frank Gray hos Bell Labs og er syklisk: siste verdi skiller seg også bare i én bit fra den første.

S: Hvorfor brukes den i dreiegivere?

S: I vanlig binærkode endres flere bit samtidig ved et skifte, f.eks. 011 til 100. Hvis sensorene ikke bytter helt synkront, oppstår kortvarig feil verdi. I Gray-kode endres én bit, så feilen er høyst én posisjon.

S: Hvordan gjør jeg om Gray til binært?

S: Den øverste biten beholdes; hver påfølgende binære bit er forrige binære bit XOR gjeldende Gray-bit. Som formel: b = g ^ (g >> 1) ^ (g >> 2) ^ …. Fra binært til Gray: g = b ^ (b >> 1).

Andre språk