Skip to the content.

最終更新日:2026年9月1日

まず結論

ハミング符号方式とは、データに検査ビットを追加して、2ビットまでの誤りを検出し、1ビットの誤りを訂正できる方式です。

基本情報技術者試験では、ハミング符号方式は 「2ビット誤りを検出、1ビット誤りを訂正」 という組合せで判断しやすいです。

CRC方式やパリティチェック方式は主に誤りを「検出」する方式ですが、ハミング符号方式は 誤りの位置を特定して訂正できる 点が大きな違いです。

直感的な説明

ハミング符号方式は、データに見守り役を何人か付けて送るイメージです。

普通にデータだけを送ると、途中で1ビットだけ変わっても、どこが変わったのか分かりにくいです。

そこで、ハミング符号方式では、データにいくつかの 検査ビット を追加します。

検査ビットは、データの一部をそれぞれ見張っています。

受信側では、検査ビットの結果を組み合わせて、

  • 誤りがあるか
  • どの位置のビットが誤っているか

を判断します。

1ビットだけ誤っていれば、誤った位置を特定して、そのビットを 0 から 1、または 1 から 0 に反転して訂正できます。

定義・仕組み

ハミング符号方式は、データビットに検査ビットを追加し、受信側で誤りの有無や誤り位置を判断できるようにする方式です。

FE試験では、細かい計算よりも、次の対応を押さえることが大切です。

用語 ハミング符号方式での意味
データビット 本来送りたい情報
検査ビット 誤りを見つけるために追加するビット
2ビット誤り 検出できる代表的な範囲
1ビット誤り 位置を特定して訂正できる代表的な誤り
誤り検出 データに誤りがあることを見つける
誤り訂正 誤ったビットの位置を特定して直す

ハミング符号方式では、複数の検査ビットが、それぞれ決まった位置のビットを確認します。

受信側で検査結果に矛盾が出ると、その組合せから誤り位置を推定します。

例えば、あるビットが 0 のはずなのに 1 になっている場合、1ビット誤りなら位置を特定し、そのビットを反転して元に戻せます。

ここで大切なのは、検出できる誤りの数と、訂正できる誤りの数は同じではないという点です。

ハミング符号
2ビット誤り → 検出できる
1ビット誤り → 訂正できる

このテーマは、基本情報技術者試験の「ネットワーク」や「データ伝送の誤り制御」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

科目Aでは、ハミング符号方式はCRC方式やパリティチェック方式、チェックサム方式と並べて出題されやすいです。

判断するときは、誤りを検出するだけか、訂正までできるか を見ます。

キーワード 判断
2ビット誤りを検出、1ビット誤りを訂正 ハミング符号方式
1ビット誤りを訂正 ハミング符号方式
誤り位置を特定 ハミング符号方式
検査ビットを追加 ハミング符号方式で出やすい
生成多項式 CRC方式
割った余り CRC方式
パリティビット パリティチェック方式
合計値・総和 チェックサム方式

例えば、次のような説明はハミング符号方式です。

データに検査ビットを付加し,
2ビットまでの誤りを検出し,1ビットの誤りを訂正する。

この説明では、「2ビット検出・1ビット訂正」 という組合せが決め手です。

また、次のような説明でもハミング符号方式と判断できます。

データに検査ビットを付加し,受信側で誤り位置を特定して,
1ビットの誤りを訂正する。

一方で、次のような説明はCRC方式です。

送信データを生成多項式で割った余りを付加し,
受信側で同じ生成多項式を使って誤りを検出する。

この説明では、生成多項式余り が出ています。

科目Aでは、訂正までできるならハミング符号、生成多項式ならCRC と考えると選択肢を切りやすいです。

どんな場面で使う?

誤り制御の説明を読むときは、ハミング符号方式が誤りの検出だけでなく訂正まで行える点を確認します。

大切なのは、次の流れです。

送信側:
データビットに検査ビットを追加する

受信側:
検査ビットを使って誤りの有無を調べる
1ビット誤りなら位置を特定して訂正する

例えば、1ビットだけ誤っている場合を考えます。

本来のデータ:1011
受信したデータ:1001

この例では、途中の1ビットが変わっています。

ハミング符号方式では、検査ビットの結果から、どの位置が誤っているかを推定します。
誤り位置が分かれば、そのビットを反転して元に戻せます。

問題文で通信やビット列の問題を読むときは、次の順で整理すると分かりやすいです。

  1. 追加されているビットが何のためかを見る
  2. 誤りを検出するだけか、訂正まで行うかを見る
  3. 誤り位置を特定する説明があるかを見る
  4. 「2ビット検出・1ビット訂正」ならハミング符号方式を疑う

ハミング符号方式は、計算手順を深掘りしすぎるより、検査ビットで誤りを検出し、1ビット誤りなら位置を見つけて訂正する という流れを押さえるのが実用的です。

よくある誤解・混同

ハミング符号方式で混同しやすいのは、CRC方式、パリティチェック方式、チェックサム方式です。

方式 主な目的 判断の合図
ハミング符号方式 誤り検出と訂正 2ビット誤りを検出、1ビット誤りを訂正、誤り位置の特定
CRC方式 誤り検出 生成多項式、余り、巡回冗長検査
パリティチェック方式 誤り検出 パリティビット、偶数・奇数、水平方向・垂直方向
チェックサム方式 誤り検出 合計値、総和、補数

CRC方式は、生成多項式で割った余りを付加して誤りを検出する方式です。
CRC方式は誤り検出が中心であり、ハミング符号方式のように1ビット誤りを訂正する方式としては扱いません。

パリティチェック方式は、1の個数が偶数か奇数かを確認する考え方です。
奇数パリティや偶数パリティだけでは、基本的に誤りの検出が目的です。ハミング符号方式のように、1ビット誤りの位置を特定して訂正する方式とは切り分けます。

また、水平・垂直の両方向にパリティを付ける方式では、誤り位置を絞り込める場合があります。
そのため、問題文では単に「パリティ」という語だけを見るのではなく、どの方式で、どこまで検出・訂正できると説明されているか を確認します。

チェックサム方式は、データを一定の単位で合計し、その値を検査用データとして使う方式です。
説明文に 合計値総和 が出てきたら、ハミング符号方式ではなくチェックサム方式を疑います。

FE試験では、次のように切り分けます。

  • 2ビット誤りを検出し、1ビット誤りを訂正するなら、ハミング符号方式
  • 生成多項式で割るなら、CRC方式
  • 偶数・奇数のパリティビットなら、パリティチェック方式
  • 合計値や総和なら、チェックサム方式

さらに注意したいひっかけ

ハミング符号方式では、次のようなひっかけにも注意します。

ひっかけ表現 なぜ注意する?
「検出」と「訂正」を同じ能力だと考える 2ビットは検出、1ビットは訂正と切り分ける
生成多項式で割る CRC方式の説明
合計値を付加する チェックサム方式の説明
パリティビットだけで1の個数を見る パリティチェック方式の説明
すべての複数ビット誤りを自動訂正する FEでは「1ビット誤りの訂正」を基本に押さえる
データを暗号化する ハミング符号方式は誤り制御であり、暗号化ではない
データを圧縮する ハミング符号方式はデータ量を減らす方式ではない

特に、「2ビットまで訂正できる」と読み替えないことが重要です。

2ビット → 検出
1ビット → 訂正

この2つを逆にしないようにします。

また、ハミング符号方式は暗号化でも圧縮でもありません。
通信中にビットが変わったときに、その誤りを見つけて直すための仕組みです。

まとめ(試験直前用)

  • ハミング符号方式は、検査ビットを追加して誤りを検出・訂正する方式
  • 2ビット誤りを検出、1ビット誤りを訂正 が重要な組合せ
  • 「1ビット誤りを訂正」「誤り位置を特定」が出たらハミング符号方式を疑う
  • 生成多項式が出たらCRC方式を疑う
  • 偶数・奇数のパリティビットが出たらパリティチェック方式を疑う
  • 合計値や総和が出たらチェックサム方式を疑う
  • ハミング符号方式は、暗号化や圧縮ではなく、誤り制御の方式

関連記事

誤り制御方式は、似た用語を並べて切り分けると覚えやすくなります。

© 2024-2026 stemtazoo. All rights reserved.