FE EXAM

奇数パリティ(odd parity)

1の個数が奇数になるよう検査ビットを付加するパリティ方式

INTERACTIVE VISUALIZATION
データビット
奇数パリティビット
誤りビット
データの1の数
4偶数
パリティビット P
1
全体の1の数
5(奇数)
受信判定
誤りなし
データビット(クリックで反転)
誤り注入(受信ビットを反転)
プリセット
① パリティビットの決定(全体を奇数に)
1
D1
0
D2
1
D3
1
D4
0
D5
0
D6
1
D7
1
P
データの1の個数 = 4偶数
→ 全体を奇数にするため P = 1偶数なので1を足して奇数に
② 受信側:1の数が奇数か確認
1
D1
0
D2
1
D3
1
D4
0
D5
0
D6
1
D7
1
P
受信フレームの1の個数 = 5奇数
✓ 奇数を保っている → 誤りなしと判定
解説

📌
奇数パリティとは

1の個数を「奇数」に揃える110011011が4個+1個 → 合計5個(奇数)※ データの1が奇数ならP=0で奇数を維持

奇数パリティ(odd parity)とは、データとパリティビット(=検査用に付け足す1ビット)を合わせた 1の個数が必ず奇数になるようにパリティビットを決める方式です。偶数パリティの「偶数」を「奇数」に置き換えただけの、もう一つの流儀です。

身近な例で言うと、当番を必ず奇数人にしておくルールに似ています。「いつも奇数人いるはず」と決めておけば、人数が偶数になっていたら「誰か抜けた or 増えた」とすぐ気づけます。奇数パリティも同じで、「1は必ず奇数個」という約束が崩れていたら誤りと判断します。

上のツールでデータビットをクリックすると、1の個数が奇数になるようパリティビット(P)がリアルタイムに決まります。データの1が偶数個ならP=1、奇数個ならP=0になる様子を確認してください。

🧮
パリティビットの決め方

全ビットのXNOR = パリティビットNOT(1⊕1⊕0⊕0⊕1⊕1⊕0) = 1偶数パリティの結果を反転させるデータの1が偶数ならP=1, 奇数ならP=0

奇数パリティビットの決め方は、次のように考えられます。どれも同じ結果になります。
個数で考える:データの1が偶数個ならP=1、奇数個ならP=0
偶数パリティから考える:偶数パリティビットを反転(NOT)した値がそのままP
回路で考える:全ビットのXOR結果を反転(XNOR)したものがP

計算例として 1100110 を見てみましょう。1の個数は4個(偶数)です。全体を奇数にしたいので、もう1つ1を足してP=1。送信フレームは 11001101 となり、全体の1は5個=奇数になります。逆にデータが 1011001(1が4個…ではなく実際は4個)のように奇数個ならP=0で奇数を維持します。

ポイントは 「偶数パリティビットの逆」という関係です。同じデータに対して、偶数パリティではP=0なら奇数パリティではP=1、というようにちょうど反対になります。覚えるときは「偶数パリティを計算してから反転するだけ」と考えると楽です。

⚖️
偶数パリティとの違い

同じデータ 0000000 のとき偶数パリティ0000000 + 0全部0でも正常奇数パリティ0000000 + 1必ず1が立つ

偶数パリティと奇数パリティは「全体の1を偶数にするか奇数にするか」だけが違い、誤り検出の能力(1ビット誤りを検出、偶数個の誤りは見逃す)は同じです。とはいえ実用上の細かな差があります。

項目偶数パリティ奇数パリティ
全体の1の数偶数にする奇数にする
データが全0のときP=0(全ビット0)P=1(必ず1が立つ)
検出能力奇数個の誤りを検出奇数個の誤りを検出(同じ)

奇数パリティの強みは 「データが全部0でも必ずどこかに1が立つ」点です。通信路が断線して何も信号が来ない(=全0が届く)状態を、偶数パリティでは「正常な全0」と区別できませんが、奇数パリティなら「1が0個=偶数だから異常」と気づけます。上のツールでデータを全0にして両方式を比べると違いが実感できます。

関連コンテンツ

奇数パリティ | Vizigo