ITパスポート対策
論理演算
論理演算は真と偽の計算
論理演算は、正しい(真)か正しくない(偽)かの2つの値だけを使う計算です。コンピュータの中では真を 1、偽を 0 で表すので、2進数の各桁をそのまま計算に使えます。
基本の演算は3つあり、論理積(AND)、論理和(OR)、否定(NOT)と呼びます。日本語に置き換えると、AND が「かつ」、OR が「または」、NOT が「〜でない」です。
真理値表で覚える
入力の組み合わせをすべて並べた表を真理値表と言います。これを覚えてしまうのが一番早い道です。
| A | B | A AND B | A OR B | A XOR B |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
AND は両方が 1 のときだけ 1 になります。OR はどちらか一方でも 1 なら 1 になります。NOT は入力を反転させるので、NOT 0 は 1、NOT 1 は 0 です。
排他的論理和(XOR)は少しだけ変わっていて、2つの値が違うときに 1、同じときに 0 になります。OR との違いは、両方が 1 のときだけです。OR は 1、XOR は 0 になります。ここが試験で必ず狙われます。
ベン図で確かめる
2つの円を重ねて描いたベン図で考えると、意味がつかみやすくなります。
- AND は2つの円が重なった部分。条件を厳しくするので、当てはまる数は減ります
- OR は2つの円を合わせた全体。条件をゆるくするので、当てはまる数は増えます
- NOT は円の外側
- XOR は重なりを除いた、それぞれの円だけの部分
検索で考えると分かりやすいです。「東京 AND カフェ」は両方の条件を満たす店だけ、「東京 OR 大阪」はどちらかに当てはまる店すべてが対象になります。
複数桁をまとめて計算する
2進数どうしの論理演算は、桁ごとに独立して計算します。繰り上がりは起きません。1011 と 0110 で試します。
- AND は各桁で 1 と 0 が 0、0 と 1 が 0、1 と 1 が 1、1 と 0 が 0 なので 0010
- OR は各桁で 1、1、1、1 なので 1111
- XOR は各桁で違う、違う、同じ、違う なので 1101
足し算のつもりで繰り上げてしまうのが典型的な失敗です。桁ごとに真理値表を当てるだけ、と割り切ってください。
試験ではこう問われます
出題の型は次のとおりです。
- ベン図の斜線部分を論理式で表す問題。重なりだけなら AND、全体なら OR、重なりを除いた部分なら XOR です
- 日本語の言い換えの取り違え。「両方に当てはまる」は AND、「少なくとも一方」は OR、「どちらか一方だけ」は XOR です
- NOT を外に付けた式。NOT (A AND B) は NOT A OR NOT B と同じ値になります。AND と OR が入れ替わる点に注意してください
- 検索条件の絞り込み。条件を AND でつなぐほどヒット件数は減ります。増えると答えるのは誤りです
編集 LuaGate編集部