基礎理論

基本情報技術者試験排他的論理和」の問題

テクノロジ系基礎理論難易度:normal
あるビット列の特定ビットだけを反転(0は1へ、1は0へ)し、他のビットは変えずに保ちたい。マスクとの間で行うべきビット演算はどれか。
反転したいビットを1にしたマスクとの排他的論理和(XOR)をとる
反転したいビットを1にしたマスクとの論理和(OR)をとる
反転したいビットを0にしたマスクとの論理積(AND)をとる
全ビットを反転する否定(NOT)を施す
正解
反転したいビットを1にしたマスクとの排他的論理和(XOR)をとる

XORは『同じなら0、異なれば1』。マスクが1の位置では元値が反転し、0の位置では元値が保たれる。反転したいビットを1にしたマスクとのXORで目的のトグルが実現でき正しい。

?選択肢ごとの解説

ア ○XORは『同じなら0、異なれば1』。マスクが1の位置では元値が反転し、0の位置では元値が保たれる。反転したいビットを1にしたマスクとのXORで目的のトグルが実現でき正しい。
イ ×OR(論理和)はマスクが1の位置を必ず1に固定するだけで、元が1だったビットを0へ反転できない。
ウ ×マスクが0の位置とのANDはそのビットを0にクリアする操作で、反転ではなく消去になってしまう。
エ ×NOTは全ビットを一律反転するため、変えたくない他のビットまで反転させてしまい条件を満たさない。

くわしく

XORはビット操作の万能ツールで、1とのXOR=反転、0とのXOR=保持という性質を持つ。ORはビットを立てる、ANDはビットを残す/消すに使い、トグルにはXORが唯一適する。同じ値を2回XORすると元に戻る性質も重要である。

本番での押さえどころ

試験のコツ

ビット操作の対応を暗記: 立てる=OR、消す=ANDマスク、反転=XOR、全反転=NOT。

覚え方

XORは『違いを見つけてひっくり返す』。1を当てたところだけ裏返る、と覚える。

よくある誤り

反転をORやNOTで行おうとして、立てるだけ・全反転になってしまう誤りが多い。

基礎理論の他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0081

【基本情報技術者試験】排他的論理和の問題 — 解答・解説|ukamiru 過去問