encoder | décoder | visualiser

> Gray | réfléchi | binaire <

// Code Gray – système de numération binaire où un seul bit change entre deux valeurs successives

0 caractères
0 caractères
[SINGLE-BIT]

Distance unitaire

Un seul bit change entre deux valeurs consécutives.

[ERROR-REDUCTION]

Réduction des erreurs

Réduit les erreurs lors de la conversion analogique–numérique.

[CYCLIC]

Propriété cyclique

La première et la dernière valeur diffèrent seulement d’un bit.

>> informations techniques

Comment fonctionne le code Gray:

Le code Gray (code binaire réfléchi) est un système de numération binaire dans lequel deux valeurs successives ne diffèrent que par un seul bit. Il est obtenu en appliquant un XOR entre chaque bit et le bit précédent. Cette propriété le rend idéal pour les codeurs de position et la réduction d’erreurs dans les systèmes numériques.

Exemples de code Gray:

Décimal | Binaire | Code 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

Remarque : un seul bit change entre deux codes Gray consécutifs

Pourquoi utiliser le code Gray:

  • ▸Codeurs rotatifs
  • ▸Cartes de Karnaugh
  • ▸Correction d’erreurs
  • ▸Communications numériques
  • ▸Capteurs de position

>> foire aux questions

Qu’est-ce que le code Gray ?

Le code Gray, ou code binaire réfléchi, est un système de numération binaire dans lequel deux valeurs successives diffèrent uniquement par un bit. Il est largement utilisé dans les systèmes numériques pour éviter les lectures ambiguës pendant les transitions.

Comment convertir du binaire en code Gray ?

Pour convertir du binaire en Gray : 1) conservez tel quel le bit de poids fort (MSB), 2) appliquez un XOR entre chaque bit et le bit précédent. Formule : G[i] = B[i] XOR B[i-1]. Par exemple, le binaire 1011 devient le code Gray 1110.

Pourquoi le code Gray est-il meilleur pour les codeurs ?

En binaire classique, plusieurs bits peuvent changer en même temps entre deux valeurs, ce qui génère des valeurs intermédiaires incorrectes. Le code Gray garantit qu’un seul bit change à la fois, réduisant les lectures erronées dans les codeurs rotatifs.

Où le code Gray est-il utilisé ?

Le code Gray est utilisé dans les codeurs rotatifs, la simplification par cartes de Karnaugh, la correction d’erreurs en communication numérique, les algorithmes génétiques et les convertisseurs analogique–numérique.

// Aide-mémoire

DecBinaryGray
0000000
1001001
2010011
3011010
4100110
5101111
6110101
7111100

// Exemples de code

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)

>> Autres questions

Q : Qu’est-ce que le code de Gray ?

R : Le code de Gray (binaire réfléchi) est une représentation où deux valeurs successives ne diffèrent que d’un seul bit. Il a été breveté par Frank Gray chez Bell Labs et est cyclique : la dernière valeur ne diffère aussi que d’un bit de la première.

Q : Pourquoi l’utilise-t-on pour les codeurs rotatifs ?

R : En binaire ordinaire, plusieurs bits changent à la fois lors d’une transition, par exemple de 011 à 100. Si les capteurs ne commutent pas parfaitement ensemble, des valeurs erronées apparaissent brièvement. En Gray, un seul bit bascule : l’erreur ne dépasse pas une position.

Q : Comment convertir du Gray en binaire ?

R : Le bit de poids fort reste identique, chaque bit binaire suivant est le bit binaire précédent XOR le bit Gray courant. En formule : b = g ^ (g >> 1) ^ (g >> 2) ^ …. Du binaire vers Gray : g = b ^ (b >> 1).

Autres langues