Outil pour détecter et corriger les erreurs dans les transmissions de messages binaires via les codes correcteurs de Hamming.
Code Correcteur de Hamming - dCode
Catégorie(s) : Informatique
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 !
Les codes de Hamming sont une série de codes/algorithmes permettant de corriger automatiquement des messages binaires si un bit (0 ou 1) altéré/erroné est transmis. La correction se fait grâce à une redondance de données minime ce qui est pratique pour corriger les erreurs de transmission dans les communications numériques.
L'algorithme proposé par Richard Hamming, fait accompagner un message binaire (composé de bits 0 et 1) de quelques bits supplémentaires codant des informations sur le nombre et la positions des bits à 1 dans le message.
Exemple : Le code de Hamming 7,4 propose de transmettre 4 bits de données, via un message de 7 bits, comportant donc 3 bits redondantes. Le code de Hamming 255,247 n'utilise que 8 bits redondantes (3% d'augmentation de taille)
Les bits supplémentaires codent la parité d'une série de bits du message original. La parité consiste à calculer si le nombre de bits à 1 est pair ou impair.
Les séries de bits du message original sont sélectionnées de manière à quadriller l'intégralité du message.
Le premier bit supplémentaire compte la parité des bits en positions 1,3,5,7,9,11,13,… il est stocké en position 1
Le second bit supplémentaire compte la parité des bits en positions 2,3,6,7,10,11,14,15,… il est stocké en position 2
Le troisième bit supplémentaire compte la parité des bits en positions 4,5,6,7,12,13,14,15… il est stocké en position 4
En croisant les informations de ces bits, il est possible de retrouver la position de l'erreur.
Exemple : Dans un code de Hamming 7,4, le deuxième bit détecte une erreur : il indique que le message devrait avoir une parité paire des bits en positions 2,3,6,7 or ce n'est pas le cas. Les autres bits n'indiquent pas d'erreur, donc il n'y a pas de problème sur les bits en position 1,3,5,7 et 4,5,6,7 donc l'erreur est en position 2. Remplacer la valeur du bit 2 (mettre un 1 à la place d'un 0 ou inversement) permet de corriger l'erreur.
Le code de Hamming ne permet de détecter qu'une seule altération dans le message, un seul changement de 1 ou 0.
Exemple : Le message 1100 (original) se code 0111100, le message original étant codé sur les bits ..1.100, reste à calculer le premier bit (en position 1) qui indique le nombre de 1 (modulo 2) parmi les positions 3,5,7 soit 0 (car 2 = 0 modulo 2), puis le second bit (en position 2) indiquant le nombre de 1 (modulo 2) parmi les positions 3,6,7 soit 1 et le troisième bit (position 4) indiquant le nombre de 1 (modulo 2) parmi les positions 5,6,7 soit 1. Le message codé par Hamming 7,4 est donc 0111100.
En informatique, il est pratique d'utiliser des séries de 8 bits (2^3), or les codes de Hamming sont pratiques pour des messages codés sur 2^n-1 bits. Ajouter un bit supplémentaire permet d'améliorer la redondance des données pour un faible coût d'espace mémoire.
Le dernier bit ajouté enregistre la parité de la totalité du message, il est généralement stocké en position 1.
Difficile de parler de décodage a proprement parler, mais plutot de correction d'erreur dans un code reçu.
— Calculer les bits supplémentaires (parfois appelé vecteur).
— Retrouver la position de l'erreur dans le mot de code en fonction des valeurs du vecteur.
— Corriger l'erreur : inverser le bit à la position correspondante.
Le message est binaire, généralement codé avec des blocs de 2^n-1 ou 2^n bits.
Toute notion d'erreur, d'altération, d'information erronée, etc. est un indice.
Le Code Correcteur de Hamming peut détecter et corriger un nombre limité d'erreurs de transmission. S'il y a trop d'erreurs, le code ne pourra pas les corriger et la transmission sera considérée comme un échec.
dCode se réserve la propriété du code source pour "Code Correcteur de Hamming". Tout algorithme pour "Code Correcteur de Hamming", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes fonctions liées à "Code Correcteur de Hamming" (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 Correcteur de Hamming" ou tout autre élément ne sont pas publics (sauf licence open source explicite type Creative Commons). 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 Correcteur de Hamming" 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.
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 Correcteur de Hamming sur dCode.fr [site web en ligne], consulté le 17/04/2025,