【はみんぐふごう】
ハミング符号 とは?
最終更新:
💡 エラーを見つけるだけじゃなく「直す」までやってくれる符号
データ中の1ビットの誤りを自動的に検出・訂正できる誤り訂正符号。冗長ビット(パリティビット)をデータに追加し、エラーの位置を特定する仕組み。
📌 このページのポイント
ハミング符号って何?エラーを直せるってほんと?
パリティビットをたくさん使うってこと?どう配置するの?
エラーの位置はどうやって分かるの?
検査結果をP4・P2・P1の順に並べると、エラー位置が二進数で分かるんだ。例えばパリティ1がNG、パリティ2がOK、パリティ4がNGなら「101」=5番目のビットがおかしい、と特定できる。すごく賢い仕組みだよね。
2ビット以上壊れたらどうなるの?
ECCメモリ以外にも使われてるの?
もっと詳しく知りたい人へ
普通のハミング符号で2ビットが壊れるとどうなる?
基本のハミング符号では、1ビット誤りと2ビット誤りを区別して訂正できません。例えば位置1と2が反転すると、検査結果が位置3の1ビット誤りと同じになり、訂正を試みると誤訂正します。全体パリティを追加した拡張符号なら1ビット訂正と2ビット検出を両立できますが、3ビット以上の誤りまで保証するものではありません。
まとめ:ざっくりこれだけ覚えればOK!
「ハミング符号」って出てきたら「1ビットの誤りを自動で見つけて直せる仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Hamming Code」 = ハミングが考案した符号
💬 ベル研究所のリチャード・ハミングの名前に由来するよ。誤りの検出で計算が止まる問題から、訂正まで行う方法を研究したんだ