[基本情報]パリティビットとは?偶数パリティの付け方を過去問で解説

エンジニア

パリティビットは、データ伝送時の誤り検出によく使われる仕組みです。基本情報技術者試験でもよく出題されるテーマのひとつ。この記事では、実際の過去問を使って「偶数パリティビットの付け方」をわかりやすく解説します!

✅ パリティビットとは?

パリティビットとは、「データに付け足して、ビット列の中の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)
タイトルとURLをコピーしました