本文へスキップ

平成22年度 秋期 ITパスポート試験 問68

この問題の解説と、これまでの解答の記録です。

問68
頻出度★★☆

任意の8ビットのデータXと, 8ビットのデータ00001111をビットごとに排他的論理和をとった結果はどれか。ここで, 各1ビットのデータAとデータBの排他的論理和をとった結果Cの値は次のように表される。また, データの左方を上位, 右方を下位と呼ぶ。 排他的論理和

ABC
000
011
101
110
出典 平成22年度 秋期 ITパスポート試験 問68
解説

問 68

  • 不正解ア

    上位と下位の役割が逆であるうえ、下位の結果も誤り。マスクの上位4ビットは 0000 なので上位は反転せずそのまま残る。また下位4ビットが「すべて 1 になる」のは XOR ではなく論理和 (OR) と 1111 をとった場合の結果であり、XOR では X の元の値によって 0 にも 1 にもなる。

  • 不正解イ

    上位と下位の扱いが完全に逆になっている。マスク 00001111 の上位は 0 なので上位こそ「そのまま残る」側であり、1 が並ぶ下位こそ反転する側である。この選択肢はマスクを 11110000 と読み違えた場合の記述にあたる。

  • 不正解ウ

    下位4ビットが反転する点は正しいが、上位4ビットの記述が誤り。0 との XOR は元の値を保存するので上位はそのまま残り、「すべて 0 になる」わけではない。上位が強制的に 0 になるのは論理積 (AND) で 0000 をマスクした場合の結果であり、XOR とは演算が異なる。

  • エ

    正解 正解は エ。図の真理値表を 1 ビットずつ読み解くと、排他的論理和 (XOR) には二つの顔がある。相手が 0 のとき (0 XOR 0=0、1 XOR 0=1) 結果は元の値のまま、相手が 1 のとき (0 XOR 1=1、1 XOR 1=0) 結果は元の値の反転になる。つまり XOR は「相手が 0 なら保存、1 なら反転」というスイッチとして働く。ここでマスクは 00001111 で、上位4ビットが 0000、下位4ビットが 1111 である。したがって X の上位4ビットは 0 と XOR されるのでそのまま残り、下位4ビットは 1 と XOR されるのですべて 0,1 が反転する。これを述べているのが エ。具体例で確かめると、X=10100101 のとき 10100101 XOR 00001111 = 10101010 となり、上位 1010 は不変、下位 0101 が 1010 に反転していることが確認できる。

ここがポイント
  • 排他的論理和 (XOR) の性質: 2 入力が異なるとき 1、同じとき 0。ビット単位で見ると「0 と XOR すると値はそのまま、1 と XOR すると値が反転する」ので、1 を立てた位置だけを反転させるビットマスクとして使える。
  • 論理演算によるマスクの使い分け: AND と 0 は該当ビットを 0 にクリア、OR と 1 は該当ビットを 1 にセット、XOR と 1 は該当ビットを反転。マスクのどの桁に 0/1 が並ぶかを上位・下位に対応させて読むことが解答の鍵。
用語

解答の記録