---
title: "パリティチェック方式とは？垂直パリティと水平パリティの違い【基本情報技術者試験】"
description: "パリティチェック方式を「1の個数が偶数か奇数かを確認して誤りを検出する方式」として整理し、垂直パリティ、水平パリティ、CRC方式、ハミング符号方式との違いをFE試験向けに解説します。"
last_modified_at: "2026-07-25"
canonical_url: "https://stemtazoo.github.io/fe/parity-check/"
section: "fe"
---

## まず結論

パリティチェック方式とは、**データにパリティビットを付加し、1の個数が偶数か奇数かを確認して誤りを検出する方式**です。

基本情報技術者試験では、パリティチェック方式は **パリティビット** というキーワードで判断しやすいです。

垂直パリティチェック方式と水平パリティチェック方式は、どちらもパリティチェック方式です。  
違いは、**どの方向にパリティを付けて確認するか** です。

## 直感的な説明

パリティチェック方式は、**荷物の数が合っているかを、偶数・奇数で確認する**イメージです。

例えば、あるデータの中に `1` がいくつあるかを数えます。

偶数パリティなら、全体の `1` の個数が偶数になるように、検査用のビットを1つ追加します。

```text
データ：1011
1の個数：3個

偶数パリティにしたいので，
パリティビット 1 を追加して 1の個数を4個にする。
```

受信側でも `1` の個数を確認します。

もし偶数になるはずなのに奇数になっていれば、途中でビットが変わった可能性があります。

このように、パリティチェック方式は **1の個数の偶数・奇数を使って誤りを見つける方法** です。

## 定義・仕組み

パリティチェック方式は、データに **パリティビット** を付けて、誤りの有無を検出する方式です。

パリティには、主に次の2種類があります。

| 種類 | 考え方 |
|---|---|
| 偶数パリティ | 1の個数が偶数になるようにパリティビットを付ける |
| 奇数パリティ | 1の個数が奇数になるようにパリティビットを付ける |

例えば、データ `1011` を考えます。

| データ | 1の個数 | 偶数パリティの追加ビット | 奇数パリティの追加ビット |
|---|---:|---:|---:|
| 1011 | 3 | 1 | 0 |

`1011` は `1` が3個なので、偶数パリティでは `1` を追加して4個にします。  
奇数パリティでは、すでに `1` が奇数個なので `0` を追加します。

このテーマは、基本情報技術者試験の「ネットワーク」や「データ伝送の誤り制御」と関係する内容です。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目Aでどう出る？

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

判断するときは、**パリティビット** や **1の個数の偶数・奇数** という言葉を探します。

| キーワード | 判断 |
|---|---|
| パリティビット | パリティチェック方式 |
| 1の個数が偶数・奇数 | パリティチェック方式 |
| 垂直方向・水平方向 | パリティチェック方式 |
| 生成多項式 | CRC方式 |
| 割った余り | CRC方式 |
| 1ビット誤りを訂正 | ハミング符号方式 |
| 合計値・総和 | チェックサム方式 |

例えば、次のような説明はパリティチェック方式です。

```text
データに検査用のパリティビットを付加し，
1の個数が偶数または奇数になるかを確認して誤りを検出する。
```

この説明では、**パリティビット** と **1の個数** が出ています。  
そのため、パリティチェック方式と判断できます。

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

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

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

科目Aでは、**パリティビットならパリティチェック、生成多項式ならCRC、訂正ならハミング符号** と考えると選択肢を切りやすいです。

## どんな場面で使う？

パリティチェック方式の考え方は、ビット列の誤り検出を読むときに役立ちます。

例えば、偶数パリティで送信する場合を考えます。

```text
送信データ：1011
パリティビット：1
送信するビット列：10111
```

このとき、全体の `1` の個数は4個です。  
偶数パリティなので、受信側でも `1` の個数が偶数かを確認します。

もし受信側で次のようなビット列を受け取ったとします。

```text
受信したビット列：10011
```

このビット列の `1` の個数は3個です。  
偶数になるはずなのに奇数になっているので、誤りが発生した可能性があります。

ただし、単純なパリティチェックでは、**どのビットが誤っているかまでは分かりにくい** です。

問題文で読むときは、次の順で整理すると分かりやすいです。

1. 偶数パリティか奇数パリティかを確認する
2. 対象のビット列に含まれる `1` の個数を数える
3. 期待される偶数・奇数と合っているかを見る
4. 合っていなければ、誤り検出と判断する

パリティチェック方式は、複雑な計算よりも、**1の個数を数えて偶数・奇数を確認する** という流れを押さえるのが実用的です。

## よくある誤解・混同

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

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

垂直パリティチェック方式と水平パリティチェック方式は、名前が少し分かりにくいですが、どちらもパリティビットを使う方式です。

| 種類 | 見方のイメージ |
|---|---|
| 垂直パリティチェック方式 | 文字やデータ単位ごとにパリティを付ける |
| 水平パリティチェック方式 | 複数のデータを並べたとき、列方向にもパリティを付ける |

試験では、垂直・水平の細かい図を完全に暗記するより、まず次のように切り分けると安全です。

- パリティビットを使うなら、パリティチェック方式
- 方向の違いを問うなら、垂直パリティと水平パリティ
- 生成多項式を使うなら、CRC方式
- 1ビット誤りを訂正するなら、ハミング符号方式

CRC方式は、生成多項式で割った余りを使って誤りを検出します。  
パリティチェック方式とは、使う検査情報が違います。

ハミング符号方式は、検査ビットを使って1ビット誤りを訂正できます。  
パリティチェック方式は、基本的には誤り検出が中心です。

### 奇数パリティと偶数パリティは、検出できる誤り数の違いではない

「奇数パリティ」「偶数パリティ」の奇数・偶数は、**検出できる誤りビット数**ではなく、正常なビット列に含まれる `1` の個数を表します。

| 項目 | 判断 |
|---|---|
| 奇数パリティ | 正常時の `1` の個数を奇数にそろえる |
| 偶数パリティ | 正常時の `1` の個数を偶数にそろえる |
| 奇数個のビット誤り | どちらの方式でも検出できる |
| 偶数個のビット誤り | どちらの方式でも見逃す場合がある |

1ビットが反転すると、`1` の個数の偶数・奇数が必ず入れ替わります。  
そのため、奇数パリティでも偶数パリティでも、1ビット誤りを検出できます。

一方、2ビットが同時に反転すると、`1` の個数の偶数・奇数が元と同じになる場合があります。  
そのため、単純なパリティチェックでは偶数個のビット誤りを見逃すことがあります。

### 垂直パリティと垂直水平パリティの違い

| 方式 | できること |
|---|---|
| 垂直パリティ単独 | 奇数個のビット誤りを検出できるが、基本的に訂正はできない |
| 垂直水平パリティ | 1ビット誤りを訂正し、2ビット誤りを検出できる |

垂直水平パリティでは、行方向と列方向の両方にパリティを付けます。  
1ビットだけ誤った場合は、異常になった行と列の交点から、誤り位置を絞り込めます。

```text
パリティが合わない行
＋
パリティが合わない列
↓
交点のビットが誤っていると判断
```

試験では、**1方向だけなら基本は検出、行と列の2方向なら位置を特定して訂正できる**と切り分けます。

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

パリティチェック方式では、次のようなひっかけにも注意します。

| ひっかけ表現 | なぜ注意する？ |
|---|---|
| 生成多項式で割る | CRC方式の説明 |
| 合計値を付加する | チェックサム方式の説明 |
| 1ビット誤りを訂正する | 単純なパリティではなく、ハミング符号や垂直水平パリティの説明 |
| データを暗号化する | パリティチェック方式は誤り検出であり、暗号化ではない |
| データを圧縮する | パリティチェック方式はデータ量を減らす方式ではない |
| すべての誤りを必ず検出する | 複数ビットの誤りでは検出できない場合がある |

特に、単純なパリティチェック方式では、2ビットが同時に変わると、1の個数の偶数・奇数が変わらないことがあります。

例えば、偶数パリティで `1` が4個だったデータが、2か所変化しても、`1` の個数が偶数のままになる場合があります。

そのため、パリティチェック方式は分かりやすい誤り検出方式ですが、万能ではありません。

FE試験では、**パリティチェック方式は誤り検出の基本方式。ただし訂正までは基本的にできない** と押さえるとよいです。

## まとめ（試験直前用）

- パリティチェック方式は、パリティビットで1の個数の偶数・奇数を確認する方式
- 奇数パリティ・偶数パリティは、正常時の `1` の個数をどうそろえるかの違い
- 奇数個のビット誤りは検出できるが、偶数個は見逃す場合がある
- 垂直パリティ単独は基本的に誤り検出のみ
- 垂直水平パリティは1ビット訂正、2ビット誤り検出ができる
- 生成多項式が出たらCRC方式を疑う
- 1ビット誤りの訂正が出たらハミング符号方式も疑う
