パリティチェック(parity check)

分類
テクノロジ系 基礎理論
出る試験
基本情報応用情報
重要度
★★★☆☆

1ビットを足して、1の個数を偶数か奇数にそろえる誤り検出。ずれていれば途中で化けたと分かる。

もう少し詳しい説明

パリティチェックは、データに1ビットだけ足して、1の個数をそろえておくやり方です。届いた側で数え直して、そろっていなければ途中で化けたと分かります。

足す1ビットをパリティビットと呼びます。

送った10110010届いた10010010
いちばん右がパリティビットです。偶数パリティでは、1の個数が偶数になるようにこの1ビットを決めます。届いたほうは3ビット目が0に化けていて、1の個数が3個(奇数)。中身は分からなくても、おかしいことだけは分かります。

偶数パリティと奇数パリティ

そろえ方は2通りあります。どちらを使うかは、送る側と受け取る側で先に決めておきます。

上の図は偶数パリティです。データ 1011001 には1が4個ありますが、これはすでに偶数なので、パリティビットは 0 になります。もし1が3個(奇数)だったら、パリティビットは 1 にして偶数にそろえます。

足す1ビットの値を決めるだけで、計算らしい計算はありません。

なぜ1ビット足すのか

ここで、「足さなくてもいいのでは」という疑問が出てきます。送る前のデータの1の個数は数えれば分かるのだから、何も足さずに送って、届いたときに個数が合わなければ化けたと判断すればよい、という考え方です。

成り立たないのは、受け取る側が、送り主の送ろうとした元のデータを知らないからです。知っているなら、そもそも送る必要がありません。

届いた 1001001 を見ても、これが正しく届いたものなのか、1ビット化けた結果なのかを決める手がかりがありません。何個であるべきだったのかを、受け取る側は知らないのです。

パリティビットの役目は、データの中身を変えることではありません。どんなデータが来ても「全体の1の個数は偶数」という決まった形にそろえてから送り出すことです。形が先に決まっていれば、受け取る側は元のデータを知らなくても、数えて決まりどおりかを見るだけで済みます。

奇数と偶数を切り替えれば、1ビット浮くのでは

もう一歩進んだ疑問です。データがすでに奇数個なら奇数パリティ、偶数個なら偶数パリティと、そのつど都合のよいほうを選べば、何も足さずに済むように見えます。

実際には、この方式は使われません。理由は3つです。

1. 送る量が減らない

どちらで見てほしいかを、受け取る側に伝えなければなりません。その連絡に、結局1ビット要ります。足す場所がデータの後ろから手前へ移っただけで、送る量は変わりません。

2. 1回ずれると、その先がすべて狂う

連絡を省いて「1回目は奇数、2回目は偶数…」と先に決めておく手もあります。ただしこの形は、送った回数を両側で数え続けているのと同じです。

連絡がノイズで化けたり、データが1回分まるごと届かなかったりすると、送る側と受け取る側で回数がずれます。ずれた後は、正しく届いたデータまで全部エラーと判定されます。1回の事故が、その先ずっと尾を引く形です。

毎回そのデータだけで判定が完結する1ビットを付けるほうが、はるかに安全です。

3. 回路が複雑になる

ルールが固定なら、1の個数を数えて偶奇を見るだけの回路で済みます。切り替えがあると「いま何回目か」を覚えておく必要が出てきます。

誤り検出は通信のたびに行われるので、この部分が単純で速いことの価値は大きいのです。

ルールを送る側と受け取る側でずっと固定し、データごとに調整用の1ビットを付ける。単純だからこそ、速くて壊れにくいというのが、この方式が使われ続けている理由です。

見つけられる誤りと、見つけられない誤り

ここが試験で問われる中心です。

1ビット化けると、1の個数が必ず1つ増えるか減ります。つまり偶奇がひっくり返るので、数え直せば分かります。

ところが2ビット化けると、偶奇が元に戻ります。図の例で3ビット目に加えて5ビット目も化けたとすると、1の個数は4個のまま。受け取った側からは、正しく届いたようにしか見えません。

偶数パリティでも奇数パリティでも、ここは同じ

どちらのパリティを使っていても、検出できるのは奇数個の誤りです。

理由は、1ビット化けるたびに偶奇がひっくり返ることにあります。奇数回ひっくり返れば、決めておいた形と違う状態になります。偶数回ひっくり返れば、元の形に戻ってしまいます。ひっくり返った回数だけで決まるので、そろえる形が偶数なのか奇数なのかは関係ありません。

奇数パリティで確かめます。1の個数を奇数(たとえば3個)にそろえて送ったとします。

化けたビット数1の個数奇数か判定
0個(無事)3個奇数正しく届いた
1個2個または4個偶数誤りと分かる
2個1個・3個・5個のどれか奇数見逃す

偶数パリティのときと、まったく同じ結果になります。

名前が似ているので、ここは取り違えやすいところです。

言葉何を数えているか
偶数パリティ・奇数パリティそろえる形。送るときに1の個数をどちらにするか
偶数個の誤り・奇数個の誤り化けたビットの数。届くまでに何ビット壊れたか

別のものを数えています。 「偶数パリティだから偶数個の誤りを見つける」という関係ではありません。

直すことはできない

パリティで分かるのは「どこかがおかしい」ということだけです。どのビットが化けたかは分かりません。

数えた結果が合わなくても、1ビット目が怪しいのか7ビット目が怪しいのかを区別する手がかりが無いためです。そのため、できるのは送り直してもらうことだけになります。

ここを一歩進めて「どのビットが化けたか」まで突き止め、その場で直せるようにしたのがハミング符号です。

縦にも数えて位置を絞る

複数のデータをまとめて送るときに、横方向だけでなく縦方向にもパリティを付けるやり方があります。水平垂直パリティと呼びます。

1234水平1行目101112行目010003行目110004行目00110垂直00101
太線の右と下が、付け足した検査です。届いたこの表では、2行目を横に数えると1が1個(奇数)、3列目を縦に数えると1が3個(奇数)。合わないのはこの1行と1列だけなので、交わったマス(2行目の3列目)が化けたビットです。場所が分かるので、0と1を入れ替えれば直せます。

データを縦横の表の形に並べ、右の列に横方向のパリティ、下の行に縦方向のパリティを付けます。どちらも、その並びの1の個数が偶数になるように決めるだけで、やっていることは1ビットのパリティと同じです。

1ビットだけ化けた場合、横のどの行がおかしいかと、縦のどの列がおかしいかが同時に分かります。図では2行目と3列目だけが合いません。合わないのが1行と1列だけなら、その交点のマス以外にありえません。

位置が決まれば、あとは0と1を入れ替えるだけです。パリティだけで訂正までできるのは、この形にしたときです。

縦横に数えるぶん、付けるビットは増えます。誤りをどこまで扱いたいかと、増えるビットの量は引き換えです。

何に使われているのか

古くはシリアル通信(データを1ビットずつ順番に送る通信)やメモリ(主記憶ともいいます。いま実行中のプログラムとデータを置いておく記憶装置)で広く使われていました。いまもメモリのECC(Error Correcting Code。誤り訂正機能付きメモリ)や、RAID(Redundant Arrays of Inexpensive Disks。複数のディスクを束ねて、速さや壊れにくさを高める技術)の5番・6番のパリティなど、考え方としては現役です。

RAID(レイド)のパリティは「1台のディスクが壊れても、残りとパリティから計算し直せる」という使い方で、足りない1つを復元するという点がパリティビットそのものです。

試験ではこう出る

科目A(旧・午前)で出ます。いちばん多いのは、パリティチェックで検出できる誤り・できない誤りを選ばせる問題です。「2ビットの誤りは検出できない」が答えになる形がくり返し出ます。

次に多いのが、具体的なビット列を見せてパリティビットの値を答えさせる形。偶数パリティか奇数パリティかを読み落とさなければ、1の個数を数えるだけです。

検出はできるが訂正はできない、という線引きも問われます。訂正まで求められていたらハミング符号やECCの話なので、言葉が出てきたら切り替えてください。

関連する用語

ハミング符号
検査ビットを複数置いて、誤りを見つけるだけでなく、どのビットかまで特定して直す
チェックディジット
数字の並びの末尾に付ける検査用の1桁。考え方はパリティと同じ
CRC
割り算の余りを検査に使う方式。パリティより見逃しが少なく、通信でよく使われる
RAID
ディスクを束ねる技術。RAID5などはパリティを持たせて、1台壊れても復元できるようにしている

ミニクイズ

8ビットのデータに偶数パリティの1ビットを付けて送った。受信側で検出できないのはどれか。

正解は 1番:2ビットが同時に化けた

パリティが見ているのは1の個数が偶数か奇数かだけです。1ビット化けると個数の偶奇が必ず変わるので、データ側でもパリティビット側でも検出できます。ところが2ビット化けると偶奇が元に戻ってしまい、正しく届いたように見えます。つまりパリティチェックで確実に見つけられるのは、奇数個のビットが化けたときだけです。この「2ビットは見逃す」という弱点が、そのまま出題されます。

間違えた用語の復習リストを見る →

この分野をまとめて解く → 基礎理論と情報メディアのミニテスト(全39問)

最終更新:2026-10-06