codificar | decodificar | visualizar

> Gray | refletido | binário <

// Código Gray – sistema de numeração binária em que apenas 1 bit muda entre valores consecutivos

0 caracteres
0 caracteres
[SINGLE-BIT]

Distância unitária

Apenas um bit muda entre valores consecutivos.

[ERROR-REDUCTION]

Redução de erros

Reduz erros em conversões analógico–digitais.

[CYCLIC]

Propriedade cíclica

O primeiro e o último valor também diferem em apenas um bit.

>> informações técnicas

Como funciona o código Gray:

O código Gray (código binário refletido) é um sistema de numeração binária em que dois valores sucessivos diferem em apenas um bit. Ele é formado aplicando XOR entre cada bit e o bit anterior. Essa característica o torna ideal para encoders de posição e redução de erros em sistemas digitais.

Exemplos de código Gray:

Decimal | Binário | Código Gray
0       | 0000    | 0000
1       | 0001    | 0001
2       | 0010    | 0011
3       | 0011    | 0010
4       | 0100    | 0110
5       | 0101    | 0111
6       | 0110    | 0101
7       | 0111    | 0100

Observação: apenas 1 bit muda entre códigos Gray consecutivos

Por que usar código Gray:

  • ▸Encoders rotativos
  • ▸Mapas de Karnaugh
  • ▸Correção de erros
  • ▸Comunicações digitais
  • ▸Sensores de posição

>> perguntas frequentes

O que é o código Gray?

O código Gray, também conhecido como código binário refletido, é um sistema de numeração binária em que dois valores consecutivos diferem em apenas um bit. Ele é amplamente utilizado em sistemas digitais para evitar leituras ambíguas durante transições.

Como converter de binário para código Gray?

Para converter de binário para Gray: 1) mantenha o bit mais significativo (MSB) igual, 2) aplique XOR entre cada bit e o bit anterior. Fórmula: G[i] = B[i] XOR B[i-1]. Por exemplo, o binário 1011 torna-se Gray 1110.

Por que o código Gray é melhor para encoders?

No binário tradicional, vários bits podem mudar ao mesmo tempo, gerando valores intermediários inválidos. O código Gray garante que apenas um bit mude por vez, reduzindo leituras erradas em encoders rotativos.

Onde o código Gray é utilizado?

O código Gray é usado em encoders rotativos, simplificação com mapas de Karnaugh, correção de erros em comunicações digitais, algoritmos genéticos e conversores analógico–digitais.

// Referência rápida

DecBinaryGray
0000000
1001001
2010011
3011010
4100110
5101111
6110101
7111100

// Exemplos de código

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)

>> Mais perguntas

P: O que é o código Gray?

R: O código Gray (binário refletido) é uma representação em que valores consecutivos diferem em apenas um bit. Foi patenteado por Frank Gray na Bell Labs e é cíclico: o último valor também difere em apenas um bit do primeiro.

P: Por que é usado em encoders rotativos?

R: No binário comum, vários bits mudam ao mesmo tempo numa transição, como de 011 para 100. Se os sensores não comutarem perfeitamente juntos, surgem valores errados momentâneos. No Gray só um bit muda e o erro é no máximo de uma posição.

P: Como converter Gray em binário?

R: O bit mais significativo permanece; cada bit binário seguinte é o bit binário anterior XOR o bit Gray atual. Em fórmula: b = g ^ (g >> 1) ^ (g >> 2) ^ …. De binário para Gray: g = b ^ (b >> 1).

Outros idiomas