基本情報 平成31年度 春期 問2:テクノロジ系に関する問題
最上位をパリティビットとする 8 ビット符号において, パリティビット以外の下 位 7 ビットを得るためのビット演算はどれか。
- a16 進数 OF との AND をとる。
- b16 進数 OF との OR をとる。
- c16 進数 7F との AND をとる。正答
- d16 進数FF とのXOR (排他的論理和) をとる。
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c「7F との AND」 です。
8桁の2進数を考えてみましょう。
- 16進「7F」=2進「0111 1111」
- これとANDを取ると、最上位bit(=パリティ)が必ず0になり、下位7bitはそのまま残る。
→ パリティだけ消えて下位7bitが取れます!
👉 覚え方:いらないbitを消す=0でAND(マスク処理)。
ほかの選択肢:a 0F=下位4bitしか残らない/b OR=bitを立てる方向/d XOR=bitを反転させる方向。
なぜこれが正解か
正解は c。16進数 7F = 2進 0111 1111。これとANDを取ると、最上位ビット(パリティビット)は常に0になり、下位7ビットはそのまま保持される。
```
X X X X X X X X ← 元の8bit(先頭がパリティ)
AND 0 1 1 1 1 1 1 1 ← 7F
──────────────
0 X X X X X X X ← パリティ除去、下位7bit保持
```
各選択肢の解説
- a 0F(0000 1111)とAND:下位4bitしか残らない。情報が欠落する。
- b 0F とOR:下位4bitを強制的に1にする。下位7bit抽出ではない。
- d FF とXOR:全bitを反転する操作で、抽出ではない。
覚え方・ひっかけ注意
ビット操作のセオリー:
- 特定bitを残す→AND(マスク)
- 特定bitを立てる→OR
- 特定bitを反転→XOR
- 全反転(NOT)→ FFとXOR
7Fのような「上位1bitだけ0、残り全部1」のパターンはマスクの典型問題。
理論的背景
ビットマスク処理はブール代数の基本恒等式に基づく:
- `X AND 0 = 0`(0でマスクされたbitは消える)
- `X AND 1 = X`(1のbitはそのまま残る)
- `X OR 1 = 1`、`X OR 0 = X`
- `X XOR 1 = ¬X`、`X XOR 0 = X`
これによりマスクパターンを設計する。`0x7F`(0111 1111)は「最上位ビットをクリア」する典型マスク。
実務での使われ方
- C言語のビットフィールド操作:`flags & FLAG_MASK`、`flags |= NEW_FLAG`、`flags &= ~CLEAR_FLAG`
- 画像処理:8bitチャネルからRGB成分抽出(`pixel & 0xFF`)、アルファ抽出(`(pixel >> 24) & 0xFF`)
- ネットワーク:IPアドレスとサブネットマスクのAND演算でネットワーク部抽出
- 暗号:XOR暗号、ストリーム暗号のキー混合
- CRC/パリティ:誤り検出符号の生成・検証
- ASCII処理:上位bitを除いて純粋ASCII(0-127)として処理
パリティビットの仕組み
偶数パリティ:データbitの1の個数が偶数になるようパリティbitを設定。奇数パリティは奇数。受信側でパリティを再計算し一致しない場合に1bit誤りを検出(訂正は不可。訂正にはハミング符号やECC、Reed-Solomon符号が必要)。
試験での位置づけ
基本情報の基礎理論・コンピュータシステム分野で必出。応用情報ではCRC多項式、ハミング距離、巡回符号、誤り訂正符号の生成行列まで踏み込む。プログラミング問題(科目B)でもビット操作の論理を読む力が求められる。
選択肢の発展補足
XOR演算の有用な性質:①`A XOR A = 0`、②`A XOR 0 = A`、③可換結合則 → 暗号や差分計算で頻出。`A XOR B XOR B = A` で復号できる。RAIDのXORベース冗長計算、ハッシュテーブルの簡易ハッシュ、配列の重複検出など実装応用も豊富。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成31年度 春期 問2/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。