> gray | reflekteret | binær <

// Gray-kode – binært talsystem hvor kun ét bit ændres mellem efterfølgende værdier

0 tegn
0 tegn
[SINGLE-BIT]

Enhedsafstand

Kun ét bit ændres mellem to efterfølgende værdier.

[ERROR-REDUCTION]

Fejlminimering

Reducerer fejl i analog-til-digital konvertering.

[CYCLIC]

Cyklisk egenskab

Første og sidste værdi adskiller sig kun i ét bit.

>> teknisk info

Hvordan Gray-kode fungerer:

Gray-kode (reflekteret binær kode) er et binært talsystem, hvor to efterfølgende værdier kun adskiller sig i ét bit. Den dannes ved at XOR'e hvert bit med det forrige bit. Denne egenskab gør koden ideel til positionsenkodere og fejlreduktion i digitale systemer.

Eksempler på Gray-kode:

Decimal | 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

Bemærk: Kun ét bit ændres mellem efterfølgende Gray-koder

Hvorfor bruge Gray-kode:

  • ▸Roterende enkodere
  • ▸Karnaugh-diagrammer
  • ▸Fejlkorrektion
  • ▸Digitale kommunikationer
  • ▸Positionssensorer

>> ofte stillede spørgsmål

Hvad er Gray-kode?

Gray-kode, også kaldet reflekteret binær kode, er et binært talsystem hvor to efterfølgende værdier kun adskiller sig i ét bit. Den bruges til at undgå fejlagtige mellemtilstande i digitale systemer.

Hvordan konverterer jeg binær til Gray-kode?

For at konvertere binær til Gray: 1) Behold MSB (mest betydende bit) uændret, 2) XOR hvert bit med det forrige bit. Formel: G[i] = B[i] XOR B[i-1]. For eksempel bliver binær 1011 til Gray 1110.

Hvorfor er Gray-kode bedre til enkodere?

I almindelig binær tælling kan flere bit ændre sig på én gang, hvilket kan give midlertidige forkerte værdier. Gray-kode sikrer, at kun ét bit ændres ad gangen og reducerer dermed tvetydige aflæsninger i roterende enkodere.

Hvor bruges Gray-kode?

Gray-kode bruges i roterende enkodere, forenkling af Karnaugh-diagrammer, fejlkorrektion i digitale kommunikationer, genetiske algoritmer og A/D-konvertere.

// Hurtig reference

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ørgsmål

S: Hvad er Gray-kode?

S: Gray-kode (reflekteret binærkode) er en repræsentation, hvor på hinanden følgende værdier adskiller sig i præcis én bit. Den blev patenteret af Frank Gray hos Bell Labs og er cyklisk: sidste værdi adskiller sig også kun i én bit fra den første.

S: Hvorfor bruges den i drejegivere?

S: I almindelig binærkode ændres flere bit samtidig ved et skift, fx 011 til 100. Hvis sensorerne ikke skifter helt synkront, opstår kortvarigt forkerte værdier. I Gray-kode ændres én bit, så fejlen er højst én position.

S: Hvordan omregner jeg Gray til binært?

S: Den øverste bit bevares; hver efterfølgende binære bit er den forrige binære bit XOR den aktuelle Gray-bit. Som formel: b = g ^ (g >> 1) ^ (g >> 2) ^ …. Fra binært til Gray: g = b ^ (b >> 1).

Andre sprog