Calculateur de code Hamming
Le mot de données 1011 s'encode en 0110011 : trois bits de parité paire prennent les positions 1, 2 et 4, et vos quatre bits occupent les positions 3, 5, 6 et 7. Pratique pour corriger un exercice ou dessiner le schéma de couverture. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Données
- 1011
- Codé
- 0110011
- P1
- 0
- P2
- 1
- P4
- 0
Le code Hamming(7,4) est le premier code binaire à correction d'erreur simple que la plupart des ingénieurs et des étudiants implémentent vraiment : quatre bits d'information deviennent un mot de sept bits après insertion de trois bits de parité paire aux positions puissance de deux. Ce calculateur de code Hamming prend un mot de données de quatre bits, place ces bits aux positions trois, cinq, six et sept, calcule p1, p2 et p4 à partir des ensembles de couverture du manuel, et renvoie le mot encodé de sept bits avec chaque bit de parité. Le contrat est strict.
Comment Hamming(7,4) place les bits de données et calcule la parité
Un encodeur Hamming(7,4) projette un mot de données de quatre bits sur un mot de code de sept bits qui permet ensuite à un décodeur de localiser tout bit inversé à partir d'un syndrome de trois bits. Les positions du mot transmis sont numérotées de un à sept. Les bits de parité occupent les puissances de deux : la position un est p1, la deux est p2 et la quatre est p4.
Les quatre bits de données remplissent le reste dans l'ordre, de sorte que la position trois est le premier bit de données d1, la cinq est d2, la six est d3 et la sept est d4.
Ce point d'accès utilise la parité paire, convention de tout cours Hamming(7,4) de manuel. p1 est choisi pour que les positions un, trois, cinq et sept contiennent un nombre pair de uns, ce qui signifie que p1 vaut d1 XOR d2 XOR d4. p2 couvre les positions deux, trois, six et sept, donc p2 vaut d1 XOR d3 XOR d4. p4 couvre les positions quatre, cinq, six et sept, donc p4 vaut d2 XOR d3 XOR d4. Le mot encodé est la concaténation p1, p2, d1, p4, d2, d3, d4.
Le vecteur de cours 1011 donne donc p1 égal à zéro, p2 égal à un, p4 égal à zéro et la chaîne de sept bits 0110011. Le mot de données tout zéro s'encode en 0000000, et celui de tous uns 1111 s'encode en 1111111, utiles comme références de test. Cette capacité n'encode que ; elle ne décode pas un mot de sept bits reçu, ne calcule pas de syndrome et ne corrige pas d'erreur.
Contrat d'entrée, champs de réponse et mots de quatre bits invalides
Avant validation, le gestionnaire retire espaces, tirets bas, deux-points, tirets et virgules, de sorte qu'un nibble espacé tel que 1 0 1 1 est accepté comme 1011.
En succès le corps renvoie la chaîne de données de quatre bits normalisée, retourne encoded comme le mot de code Hamming de sept bits, signale les trois bits de parité p1, p2 et p4 et les quatre bits de données placés d1 à d4 comme entiers zéro ou un, liste positions comme un tableau de sept éléments en ordre d'indice de la position un à sept, et inclut layout comme le mnémonique p1 p2 d1 p4 d2 d3 d4 plus parity fixé à even afin que les clients affichent la convention sans deviner.
Associez la chaîne encoded à votre propre décodeur si vous avez besoin d'un syndrome ; ce point d'accès n'inverse pas les bits et n'indique pas quelle position a échoué. Gardez la requête petite : quatre bits de charge, une poignée d'opérations XOR, sans réseau et sans aléatoire, de sorte que les exemples de référence se comparent octet pour octet entre exécutions.
Où un encodeur Hamming(7,4) justifie sa place
Les cours d'informatique utilisent un calculateur de code Hamming pour que les apprenants vérifient le mot de sept bits de n'importe quel devoir de quatre bits sans confondre quelles positions sont de parité. Les auteurs de micrologiciels embarqués et de stockage figent encoded contre un vecteur connu tel que 1011 se mappe en 0110011 dans des tests unitaires avant de câbler un bloc SECDED plus large ou une disposition Hamming(15,11).
Les plateformes d'entretien et d'examen ont besoin d'un oracle déterministe qui refuse une chaîne de trois ou cinq bits au lieu de compléter en silence, car le remplissage marquerait comme juste une mauvaise réponse d'étudiant. La validation en échec ne consomme pas de solde. Gardez les requêtes petites, traitez encoded comme le résultat primaire copiable et utilisez p1, p2 et p4 lorsque vous dessinez le diagramme de couverture pour une diapositive.
Cet outil ne remplace pas une bibliothèque ECC générale : c'est l'encodeur Hamming(7,4) que étudiants et tests recherchent vraiment, pas un constructeur Hamming de longueur variable ni un décodeur.
Cas d’usage
Exercices de cours Hamming(7,4)
Laissez les étudiants envoyer un mot de données de quatre bits et comparer encoded, p1, p2 et p4 avec le placement de parité paire du manuel aux positions un, deux et quatre.
Tests unitaires ECC de micrologiciel
Figez des vecteurs Hamming(7,4) tels que 1011 encodé en 0110011 dans le CI avant de câbler un bloc Hamming ou SECDED plus large dans le micrologiciel mémoire.
Oracles d'examen et d'entretien
Notez les questions de code Hamming avec un encodeur déterministe qui refuse toute chaîne qui n'est pas exactement quatre chiffres binaires au lieu de compléter en silence.
Questions fréquentes
Comment encoder quatre bits avec le code Hamming(7,4) ?
Envoyez data comme une chaîne d'exactement quatre chiffres binaires, par exemple 1011.
Que se passe-t-il si l'entrée n'a pas exactement quatre chiffres binaires ?
Les fragments de trois bits, débordements de cinq bits, chaînes vides et caractères non binaires sont refusés et non facturés.
Quelle convention de parité ce code Hamming utilise-t-il ?
La parité paire, convention Hamming(7,4) de manuel. p1, p2 et p4 sont choisis pour que chaque ensemble de couverture contienne un nombre pair de uns. Le champ de réponse parity vaut toujours even.
Où les bits de parité sont-ils placés dans le mot de sept bits ?
Aux positions puissance de deux : p1 à la position un, p2 à la deux, p4 à la quatre. Les bits de données occupent les positions trois, cinq, six et sept, donc le layout est p1 p2 d1 p4 d2 d3 d4.
Comment chaque bit de parité est-il calculé ?
Chaque bit de parité donne un nombre pair de uns à son groupe de positions. p1 couvre les positions 1, 3, 5 et 7, p2 les positions 2, 3, 6 et 7, et p4 les positions 4, 5, 6 et 7.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/hamming-code \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"data":"1011"}'const res = await fetch("https://api.kit.forhosting.com/enc/hamming-code", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"data": "1011"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/hamming-code",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"data": "1011"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/hamming-code", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"data":"1011"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"data":"1011"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/hamming-code", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"data": "1011"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.hamming_code",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Après suppression des espaces, tirets bas, deux-points, tirets et virgules optionnels, l'entrée doit être exactement quatre caractères de l'ensemble zéro et un ; toute autre longueur ou un caractère non binaire échoue avec invalid_input et n'est pas facturée.
Contrat d'entrée, champs de réponse et mots de quatre bits invalides
Envoyez par POST un corps JSON avec un champ obligatoire nommé data : une chaîne d'exactement quatre chiffres binaires. Les clés alias bits, word, text, value et input sont acceptées lorsque data est omis, et elles sont résolues dans cet ordre. Après nettoyage, les caractères restants doivent être exactement quatre symboles de l'ensemble zéro et un ; un champ manquant, une chaîne vide, un fragment de trois bits, un débordement de cinq bits et toute lettre ou chiffre autre que zéro et un échouent avec invalid_input qui nomme le champ data. Ces échecs ne sont pas facturés.
Où un encodeur Hamming(7,4) justifie sa place
Comme l'implémentation est parse pure de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant.
Questions techniques
Combien coûte le calculateur de code Hamming ?
L'outil dans le navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; l'entrée invalide n'est pas facturée.