論理演算(AND・OR・NOT・XOR)の計算は、IPA 午前四択で繰り返し出題される定番です。真理値表のしくみさえつかめば公式暗記は不要で、確実な得点源に変えられます。最大のつまずきは XOR の意味と、AND/OR を使ったビット操作(ビットマスク)の使い分けです。ここを機械的に整理します。
出発点は真理値表です。1(真)と 0(偽)の組合せに対して結果を表で並べます。AND は両方が 1 のときだけ 1(論理積)、OR はどちらか一方でも 1 なら 1(論理和)、NOT は 0 と 1 を反転(否定)します。XOR(排他的論理和)は 2 つが異なるとき 1・同じとき 0 で、『一致なら 0、不一致なら 1』と覚えると間違えません。OR と XOR は 1・1 のときだけ結果が違う(OR は 1・XOR は 0)点が頻出のひっかけです。
午前の実戦では、これらをビット列にまとめて適用するビット操作(ビットマスク)が問われます。特定ビットを 0 にしたい(クリア)ときは、そのビットを 0・他を 1 にしたマスクと AND をとります。特定ビットを 1 にしたい(セット)ときは、そのビットを 1 にしたマスクと OR をとります。特定ビットを反転したいときは、そのビットを 1 にしたマスクと XOR をとります。『0 にしたいなら AND、1 にしたいなら OR、反転なら XOR』の 3 点セットで多くの問題が解けます。
仕上げはド・モルガンの法則とシフト演算です。ド・モルガンの法則は『NOT(A AND B)=(NOT A)OR(NOT B)』『NOT(A OR B)=(NOT A)AND(NOT B)』で、否定を内側へ配ると AND と OR が入れ替わる、と覚えます。シフト演算は、2 進数を左へ n ビットずらすと 2 の n 乗倍、右へ n ビットずらすと 2 の n 乗で割る(小数切り捨て)に対応し、掛け算・割り算を高速に行う定番テクニックとして出題されます。
練習問題: 2 進数 10110100 の下位 4 ビットだけを 0 にクリアするには、どんなマスクと、どの論理演算(AND/OR/XOR)を組み合わせればよいでしょうか。また、その結果を左へ 1 ビットシフトすると、もとの数の何倍になるでしょうか。過去問AI の AI コパイロットに『この論理演算の問題の解き方を教えて』と聞くと、真理値表からビット操作まで手順がステップごとに表示されます。