ハミング符号とは?はみんぐふごう
ハミング符号とは、データビットの間に複数の検査ビットを規則的に置き、どの検査式が成り立たないかの組合せから、誤ったビットの位置まで特定できる誤り訂正符号。位置が分かればそのビットを反転させるだけで直せる。一般的な構成では1ビットの訂正と2ビットの検出(SEC-DED)ができる。
最終更新:2026-10-07
この語が出る過去問を解く →背景
パリティチェックでは「どこかが1ビット狂った」ことしか分からず、直すには送り直すしかない。ところが主記憶のように送り直す相手がおらず、止めることもできない場所では、検出だけでは足りない。検査ビットを複数持たせ、その成否の組合せがそのまま位置を表す2進数になるよう配置したのがハミング符号で、サーバのECCメモリなどで使われている。
具体例
検査式c2・c1・c0のうちc1とc0が不成立なら、その結果を並べた011=3が誤りの位置を指すので、3ビット目を反転させれば元に戻る。ECCメモリでは、この判定と訂正をメモリコントローラが読出しのたびに自動で行っている。
試験での引っ掛け
訂正できるのは1ビット、検出できるのは2ビットまでという非対称を取り違えやすい。2ビット誤りは「誤りがあると分かる」だけで直せず、3ビット以上では正しいものと誤認することもある。
関連用語
出た過去問
出典:平成30年度 秋期 高度試験 午前Ⅰ 問5(IPA)
メモリの誤り制御方式で、2ビットの誤り検出機能と、1ビットの誤り訂正機能をもたせるのに用いられるものはどれか。
正解:ハミング符号
要点:ハミング符号は1ビット訂正・2ビット検出(SEC-DED)
ハミング符号は、データビットに複数の検査ビット(冗長ビット)を付加し、誤りの位置を特定できるようにした誤り訂正符号である。一般にSEC-DED(拡張ハミング符号)として用いられ、1ビットの誤りは訂正でき、2ビットの誤りは訂正はできないが検出できる。このためメモリのECC(誤り訂正符号)として広く使われている。
出典:平成30年度 春期 高度試験 午前Ⅰ 問1(IPA)
ハミング符号とは、データに冗長ビットを付加して、1ビットの誤りを訂正できるようにしたものである。ここでは、X1、X2、X3、X4の4ビットから成るデータに、3ビ…
正解:0110011
要点:不成立の検査式すべてに共通するビットが誤りビット
符号1110011は左からX1=1, X2=1, X3=1, P3=0, X4=0, P2=1, P1=1である。三つの検査式を計算すると、X1⊕X3⊕X4⊕P1=1、X1⊕X2⊕X4⊕P2=1、X1⊕X2⊕X3⊕P3=1となり、いずれも0にならない。三つすべての式に共通して現れるのはX1だけなので、誤っているのはX1である。X1を0に訂正すると0110011となり、三つの式がすべて0になることが確かめられる。
出典:令和4年度 春期 高度試験 午前Ⅰ 問1(IPA)
ハミング符号とは、データに冗長ビットを付加して、1ビットの誤りを訂正できるようにしたものである。ここでは、X1, X2, X3, X4の4ビットから成るデータに…
正解:0110011
要点:不成立の検査式すべてに共通するビットが誤り位置
与えられた符号の各ビットをX1=1,X2=1,X3=1,P3=0,X4=0,P2=1,P1=1と対応させ、3つの検査式を計算するといずれも1となり、3式すべてが不成立になる。3つの式すべてに共通して現れるのはX1だけなので、誤っているのはX1のビットである。これを0に訂正すると0110011となる。
出典:令和6年度 春期 高度試験 午前Ⅰ 問2(IPA)
符号長7ビット、情報ビット数4ビットのハミング符号による誤り訂正の方法を、次のとおりとする。 受信した7ビットの符号語 x1 x2 x3 x4 x5 x6 x7…
正解:1010101
要点:c0・c1・c2からi=3を求め3ビット目を反転する
受信語1000101をx1〜x7とすると、c0=x1+x3+x5+x7=1+0+1+1=1、c1=x2+x3+x6+x7=0+0+0+1=1、c2=x4+x5+x6+x7=0+1+0+1=0(いずれもmod 2)。i=1+1×2+0×4=3となるので、左から3ビット目を反転する。1000101の3ビット目0を1にして1010101が得られる。
出典・参考
公式シラバスの1 基礎理論 > 4. 通信に関する理論 > (1) 伝送理論に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。