Outil pour convertir en code Gray. Le code de Gray, aussi appelé binaire réfléchi, est un système binaire ne changeant qu'un seul bit à chaque incrémentation d'une unité.
Code Gray - dCode
Catégorie(s) : Codage de Caractères, Electronique
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Le code Gray aussi appelé binaire réfléchi est un code binaire ayant la propriété de ne modifier qu'un seul bit lorsqu'un nombre est augmenté (ou diminué) d'une unité.
Le code Gray, aussi appelé binaire réfléchi, est un codage des entiers en binaire tel que deux valeurs consécutives ne diffèrent que d'un seul bit, c'est-à-dire que leur distance de Hamming vaut $ 1 $.
Exemple :
| Nombre | Binaire | 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 |
| 8 | 1000 | 1100 |
Cette propriété est utile pour éviter les erreurs lors des transitions entre valeurs proches.
Pour transformer un nombre binaire $ B $ en code Gray $ G $, il suffit d'appliquer l'opération suivante : $$ G = B \oplus (B >> 1) $$
Exemple : $$ \begin{align} 1 0 1 1 & \\ \oplus \rightarrow 1 0 1 & (1) \\ = 1 1 1 0 & \end{align} $$ Le code binaire 1011 a pour la valeur 1110 dans sa version réfléchie en code Gray.
L'implémentation de l'algorithme en langage informatique se réalise en une ligne et utilise les opérateurs binaires xor et shift : function bin2gray(n) return n ^ (n >> 1)
Un algorithme de conversion d'un entier en code Gray (binaire) utilise des divisions successives par des puissances de 2 et regarde la parité de l'arrondi du quotient obtenu.
Pour convertir un entier décimal en code Gray, d'abord le convertir en binaire, puis appliquer la transformation : $$ G = B \oplus (B >> 1) $$
Exemple : $$ \begin{align} 29_{10} &= 11101_2 \\ 11101 >> 1 &= 01110 \\ G &= 11101 \oplus 01110 = 10011 \end{align} $$
La conversion du code Gray peut se faire octet par octet.
Exemple : Le caractère k de code ASCII : $ 107 $, soit en binaire $ 01101011 $ et en code Gray : $ 01101011 \oplus 00110101 = 01011110 $ soit $ 94 $ le code du caractère ^
Les premières valeurs du code Gray pour 4 bits sont : 0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100, 1100, 1101, 1111, 1110, 1010, 1011, 1001, 1000
Les premières valeurs décimales équivalentes sont : 0, 1, 3, 2, 6, 7, 5, 4, 12, 13, 15, 14, 10, 11, 9, 8, etc. ici
Le principal avantage du code Gray est que deux valeurs consécutives ne diffèrent que d'un seul bit.
Cela permet de : réduire les erreurs lors des transitions, éviter les états intermédiaires incohérents, améliorer la fiabilité des mesures, etc.
Il est notamment utilisé dans les encodeurs de position, les convertisseurs analogique-numérique et certains algorithmes combinatoires.
Le code gray est difficile à distinguer d'un autre code binaire.
La couleur grise (gray ou grey en anglais) est un indice.
Dans une suite de valeurs du code gray la distance de Hamming entre deux valeurs consécutives vaut $ 1 $.
Un message ASCII encodé avec un code gray, produit une substitution simple des 128 valeurs ascii.
Le n-ième code Gray peut être calculé directement avec : $$ G(n) = n \oplus (n >> 1) $$
Cette formule permet de générer rapidement toute la suite sans construire les valeurs précédentes.
Le code Gray s'applique uniquement à des représentations binaires discrètes.
Pour un nombre réel codé en format fixe (comme Q4.4), appliquer le code Gray à la représentation binaire entière sous-jacente.
Le code Gray est lié à la résolution des tours de Hanoï.
Chaque déplacement correspond à un changement d'un seul bit, ce qui reflète exactement la propriété du code Gray. Cela permet de générer une solution optimale de manière systématique.
Le code Gray a été popularisé par un brevet déposé en 1953 par Frank Gray, un chercheur travaillant pour les laboratoires Bell.
dCode se réserve la propriété du code source pour "Code Gray". Tout algorithme pour "Code Gray", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes fonctions liées à "Code Gray" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou toute base de données, ou accès API à "Code Gray" ou tout autre élément ne sont pas publics (sauf licence open source explicite). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Code Gray" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source (Licence de libre diffusion Creative Commons CC-BY).
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Code Gray sur dCode.fr [site web en ligne], consulté le 14/05/2026,