パリティビットは、データ伝送時の誤り検出によく使われる仕組みです。基本情報技術者試験でもよく出題されるテーマのひとつ。この記事では、実際の過去問を使って「偶数パリティビットの付け方」をわかりやすく解説します!
✅ パリティビットとは?
パリティビットとは、「データに付け足して、ビット列の中の1の数が奇数か偶数かを管理するためのビット」です。誤り検出用に使われます。
- 偶数パリティ:1の数が「偶数」になるようにビットを付加する
- 奇数パリティ:1の数が「奇数」になるようにビットを付加する
💡 今回は「偶数パリティビット」を使います!
✅ 過去問:7ビットの文字コードに偶数パリティを付加
問題: 7ビットの文字コードの先頭に1ビットの偶数パリティビットを付加するとき,文字コード 30,3F,7A にパリティビットを付加したものはどれか。
※文字コードは16進数で表記。
🔍 ステップ①:各コードを2進数に変換
30 = 00110000
3F = 00111111
7A = 01111010
このうち使うのは「7ビット部分」。つまり、右側の7ビット(下位7ビット)を使います。
30 → 0110000 (1の数:2個)
3F → 1111111 (1の数:7個)
7A → 1111010 (1の数:5個)
ちなみに16進数を2進数に変換する方法については下記の通りです。※知ってる方はとばしてOK
例)
7A
①まずは値を2個に分ける
↓
7 A
②左の値を2進数に変換する
7
└2進数の変換は下記のように位ごとに分けて考えると簡単です。
0 | 1 | 1 | 1
8の位 | 4の位 | 2の位 | 1の位
↓
上記の場合、
「7」という数字は8の位には入らないから「0」、
「4」の位には入るから「1」、
「2」の位にも入るから「1」、
「1」の位にも入るから「1」。
↓
結果、「0111」になる。
③右の値を2進数に変換する
A
└上記と同様に変換。
1 | 0 | 1 | 0
8の位 | 4の位 | 2の位 | 1の位
↓
上記の場合、
「10」という数字は8の位には入るから「1」、
「4」の位には入らないから「0」、
「2」の位には入るから「1」、
「1」の位にも入らないから「0」。
↓
結果、「1010」になる。
🔍 ステップ②:偶数パリティビットを決める
- 0110000(1が2個)→すでに偶数 → 先頭に 0 を付ける →
00110000
(=30) - 1111111(1が7個)→奇数 → 先頭に 1 を付けて偶数にする →
10111111
(=BF) - 1111010(1が5個)→奇数 → 先頭に 1 を付けて偶数にする →
11111010
(=FA)
つまり、7ビットに偶数パリティビットを付加すると、以下のようになります:
30 → 00110000(そのまま)
3F → 10111111(BF)
7A → 11111010(FA)
✅ 答え:30,BF,FA
ただし、選択肢によってはパリティビットを含めた 8ビット全体の16進数 を答える形式なので、「BF」の代わりに元の7ビット部分(0011111)にパリティビット(1)を加えた 10111111
(BF)を答える必要があります。
✅ 正解は → 30,BF,FA(問題文によっては「30,3F,FA」など表記ブレに注意!)
✅ パリティビットの注意点
- パリティは「誤り検出」に使われるだけで、「誤りの修正」はできません
- 1ビットの誤りしか検出できない
- 8ビットデータの先頭にパリティビットを付加 → 実質「9ビット」になることもある
試験では「パリティビットを何ビット目に付加するのか」「何パリティか(偶数 or 奇数)」に注意して読みましょう!
📝 まとめ
用語 | 意味 |
---|---|
パリティビット | データ中の1の数が奇数/偶数かをチェックするビット |
偶数パリティ | 1の数が偶数になるようにビットを付加 |
問題の正解 | 30 → 00110000 3F → 10111111(BF) 7A → 11111010(FA) |