ハミング符号 【Hamming code】 ハミングコードチェック
データを送受信する際に、本来のデータに一定の手順で計算したチェック用のデータを付加して送信することにより、受信側で受け取ったデータに誤りがないかどうかを検証することができる。
パリティチェックでは元のビット列中の1の数が偶数なら0、奇数なら1(あるいはその逆)となる1ビットのパリティビットを付加するが、ハミング符号では元のビット列の中からいくつかの異なる複数ビットの組み合わせを考え、それぞれについてパリティを算出して付加していく。受信側では複数あるパリティから元のビット列のどこに誤りが生じたかを知ることができる。
ハミング符号は元のデータを一定の長さごとに区切って算出する。ブロックの長さと追加する符号の長さによって誤り検出能力は異なる。最も単純な例として知られる元のデータ4ビットにつき3ビットのハミング符号を算出する方式では1ビットの誤りを検知し、これを正しい値に訂正できる。
ハミング符号は1950年に米AT&T(当時)ベル研究所のリチャード・ハミング(Richard W. Hamming)氏によって考案された。後に開発されたリードソロモン符号などに比べ誤りの検出・訂正能力は弱いが、計算手順が短く高速に処理できるという特徴がある。ECCメモリやRAID 2などの採用例が有名。
(2019.4.28更新)