戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2010年 秋期 68


問題文

任意の8ビットのデータXと、8ビットのデータをビットごとに排他的論理和をとった結果はどれか。ここで、各1ビットのデータAとデータBの排他的論理和をとった結果Cの値は次のように表される。また、データの左方を上位、右方を下位と呼ぶ。
ITパスポート 2010年 秋期  問68の問題画像

選択肢

Xの上位4ビットすべての0, 1が反転し、下位4ビットはすべて1になる。
Xの上位4ビットすべての0, 1が反転し、下位4ビットはそのまま残る。
Xの上位4ビットはすべて0で、下位4ビットすべての0, 1が反転する。
Xの上位4ビットはそのままで、下位4ビットすべての0, 1が反転する。(正解)

🔒 解説は解答すると表示されます

任意の8ビットデータXと00001111の排他的論理和はどれか【ITパスポート 解説】

正解の理由

理由を一言で言うと、排他的論理和(XOR:Exclusive OR)は「対応するビットが1なら反転(0↔1)、0ならそのまま残る」性質を持つからです。ここで与えられたマスクは 00001111 なので、上位4ビット(左側)は0、下位4ビット(右側)は1です。したがって上位4ビットは変化せず、そのまま残り、下位4ビットだけが反転します。
用語補足(初出):
  • ビット(bit):情報の最小単位。0か1のどちらかを表す。
  • 排他的論理和(XOR):2つのビットを比較して、異なれば1、同じなら0を返す論理演算。
  • 上位(左方)/下位(右方):バイナリ表記で左がより大きな重みを持つ(上位)、右が小さな重み(下位)。

解法ステップ

  1. XOR の真理値表を確認する(問題文にも示されています)。
    • 0 XOR 0 = 0、0 XOR 1 = 1、1 XOR 0 = 1、1 XOR 1 = 0
    • 結論:XOR は「0 と XOR すると変わらない(保持)、1 と XOR すると反転する(0↔1)」
  2. マスク 00001111 をビットごとに X に適用する。マスクの各ビットが0なら対応する X のビットはそのまま、1なら反転する。
  3. マスクを見ると上位4ビットが0、下位4ビットが1なので、上位4ビットはそのまま、下位4ビットはすべて反転する。これが選択肢エの説明と一致する。
簡単な例:
  • X = とすると、下位4ビットは 。反転すると
  • 結果は (上位4ビット は変化なし、下位4ビットは反転)。
プログラム例(参考):
X = 0b10110010
mask = 0b00001111
result = X ^ mask
print(bin(result))  # -> 0b10111101

選択肢別の誤答解説

  • ア: 「Xの上位4ビットすべての0, 1が反転し、下位4ビットはすべて1になる。」
    誤りです。マスクの下位4ビットは1なので下位が反転するはずで、「下位がすべて1になる」とは限りません(反転結果は元の下位ビット次第)。また上位が反転するのはマスク上位が1のときです。ここでは上位は0なので反転しません。
  • イ: 「Xの上位4ビットすべての0, 1が反転し、下位4ビットはそのまま残る。」
    誤りです。説明がアと逆で、マスク 00001111 は上位を0、下位を1にしているため、実際は上位がそのまま、下位が反転します。イはマスクが 11110000 の場合に該当する説明です。
  • ウ: 「Xの上位4ビットはすべて0で、下位4ビットすべての0, 1が反転する。」
    誤りです。これはマスクの効果と X の値を混同しています。XOR はマスクの1で反転、0で保持するので「上位がすべて0になる」わけではありません。上位はマスクが0なので X の上位ビットがそのまま残ります。
  • : 「Xの上位4ビットはそのままで、下位4ビットすべての0, 1が反転する。」
    正しいです。マスク 00001111 の上位が0(保持)、下位が1(反転)という性質と一致します。

よくある誤解

  1. マスクの書き方で「左が上位、右が下位」を逆に考えてしまう。
    • 問題文に「左方を上位、右方を下位」とあるので、まずはここを確認してください。上位=左、下位=右です。
  2. XOR を「常に反転する」と思う。
    • XOR は「相手が1のとき反転、0のとき保持」です。マスクのビットを見ないで一律に反転するわけではありません。

補足コラム

  • マスク(bit mask)とは、ビット演算で「どのビットに作用するか」を示す値です。ここでは 00001111 がマスクになり、下位4ビットに作用します。
  • 00001111 は16進数で 0x0F、10進数で 15 に相当します。よく使われる表現なので覚えておくと便利です。
  • XOR の用途例:フラグの反転(オン/オフの切り替え)、単純な暗号(ワンタイムパッド的操作)、パリティチェック(誤り検出)など。

FAQ

Q1. マスクが 11111111 ならどうなる?
A1. 全ビットが1なので、XOR によって X の全ビットが反転します(ビット反転=NOT と同等)。
Q2. ビットを「強制的に1にする」にはどうする?
A2. OR(論理和)を使います。マスクのビットが1ならその位置を1にできます。逆に「強制的に0にする」には AND を使い、マスクの対応ビットを0にします。
Q3. 上位・下位の言い換えが分かりにくいです。例を教えてください。
A3. 8ビット 10110010 の場合、左から4つ 1011 が上位4ビット、右から4つ 0010 が下位4ビットです。


関連キーワード: 排他的論理和、XOR、ビット演算、マスク、上位下位、バイナリ、0x0F、フラグ操作、ビット反転
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について