Texte & documents
Nombres & calcul
Données & formats
Sécurité
Développement & DevOps
Intelligence artificielle
Finances
Santé et bien-être
Productivité
Jeux et divertissement
Multimédia & design
Entreprise
Guide d'utilisation
Qu'est-ce que c'est et à quoi ça sert

Le code de Hamming est un code correcteur d'erreurs : il ajoute à tes données quelques bits de parité pour que, si un bit est corrompu lors de la transmission ou du stockage, il puisse être détecté et corrigé automatiquement sans rien renvoyer. Il est utilisé dans la mémoire ECC, les communications et le stockage. Un code de Hamming classique corrige 1 bit erroné par mot ; avec l'extension SECDED, il en détecte 2 en plus. Tout le calcul se fait dans ton navigateur.

Comment l'utiliser (les trois onglets)

1. Encoder — écrivez vos bits de données et obtenez le mot de code avec la parité déjà intercalée ; cliquez sur un bit pour simuler une erreur.
2. Détecter et corriger — collez un mot de code (avec ou sans erreur) et vous verrez le syndrome, le bit erroné et le mot corrigé.
3. Simulateur — envoie le même mot des milliers de fois via un canal bruité et mesure combien sont corrigés, détectés ou en échec.

L'interrupteur SECDED et le menu Exemples sont présents dans les trois onglets. Tout se recalcule automatiquement à la saisie (sans bouton).

Que saisir et ses limites

Dans Encoder vous avez deux modes :
• Bits — uniquement les caractères 0 et 1 (les données, sans bits de parité : ils s'ajoutent seuls).
• Texte — texte ASCII/Latin-1 ; chaque caractère est converti en 8 bits (les caractères hors de cette plage ne sont pas acceptés).

Dans Détecter et corriger, vous collez le mot de code complet (données + parité), également en 0 et 1. Tout autre caractère marque le champ en rouge. Il n'y a pas de limite de longueur : plus il y a de bits de données, plus le code est efficace (moins de parité par bit).

Comment fonctionne l'encodage

Les bits de parité se placent aux positions puissance de 2 (1, 2, 4, 8, 16…) et les bits de données remplissent le reste. Pour k bits de données, on choisit juste assez de r bits de parité pour que 2^r ≥ k + r + 1 (ainsi 4 données → 3 parité = Hamming(7,4) ; 8 données → 4 parité).

Chaque bit de parité Pi couvre les positions dont l'index a ce bit à 1 : P1 (1, 3, 5, 7…), P2 (2, 3, 6, 7…), P4 (4, 5, 6, 7…). Sa valeur est fixée (par XOR) pour que le nombre de uns qu'il couvre soit pair. Le tableau Couverture montre quelles positions chacun surveille.

Comment il détecte et corrige (le syndrome)

À la réception du mot, chaque parité est revérifiée avec un XOR. Le syndrome est la somme des positions de parité en échec et, de par la façon dont elles ont été placées, correspond exactement à la position du bit erroné : syndrome 0 = pas d'erreur ; syndrome 5 (= 101 en binaire) = le bit 5 est erroné, et il est inversé pour le corriger.

Attention : Hamming suppose toujours une seule erreur. S'il y a 2 bits erronés, le syndrome désigne un troisième bit innocent et le « corrige » à tort → échec silencieux (données erronées sans avertissement). C'est justement à cela que sert SECDED.

SECDED (parité étendue)

En activant SECDED, on ajoute un bit de parité global (P0) qui couvre tout le mot, faisant monter la distance minimale de 3 à 4. Avec ça, le code corrige 1 erreur et en détecte 2 (mais ne peut pas corriger les doubles). C'est ce qu'utilise la mémoire ECC.

La logique combine le syndrome avec P0 : syndrome 0 et P0 correct = pas d'erreur ; syndrome ≠ 0 et P0 en échec = 1 erreur corrigible ; syndrome ≠ 0 mais P0 correct = erreur double détectée ; seul P0 en échec = P0 lui-même s'est corrompu.

Simuler une erreur (onglet Encoder)

Après le codage, clique sur n'importe quel bit du mot pour le "corrompre" et observe instantanément comment le syndrome localise le bit signalé et le corrige. Si tu changes 2 bits ou plus tu verras l'échec silencieux (ou, avec SECDED, la détection de l'erreur double). Utilise Restaurer le mot pour revenir à l'original ou Envoyer à Détecter et corriger pour l'analyser dans l'autre onglet.

HammingDétection d'erreurs
Code de HammingDétection et correction d'erreurs (avec SECDED et simulateur)
Données sans bits de parité (ajoutés automatiquement)