論理演算 - AND/OR/NOT/XOR

AND・OR・NOT・XOR と シフト演算を、真理値表とビット計算で直感的に整理。

編集・検証: ITパスポートスタディ編集部 公式情報: IPA ITパスポート試験公式ページ 制作・検証方針

AND・OR・NOT・XOR は、コンピュータが「はい/いいえ」を組み合わせて判断するための基本ルールです。真理値表とビット演算、シフト演算までをまとめて整理します。

小夜川 ほのか(しょんぼり) 小夜川 ほのか

論理演算って、なんだか難しそうですぅ…。
数学っぽい記号がいっぱい出てくるイメージなのぉ。

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

ふふ、見た目ほど難しくないのよ。
要は『はい』と『いいえ』の組み合わせを決めるルールなの。
コンピュータは『はい=1』『いいえ=0』の2つしか知らないでしょう?

星見 めい(普段) 星見 めい

あー、傘の話みたいなやつ?
『雨が降ってる、かつ、出かける』なら傘を持つ、みたいな。

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

まさにそれよ。
『AかつB』がAND。
『AまたはB』がOR。
これが土台ね。

蜂谷 まこと(普段) 蜂谷 まこと

補足すると、論理演算は全部で4つ押さえれば十分です。
AND・OR・反転のNOT・そしてXOR。
試験はこの4つから出ます。

小夜川 ほのか(しょんぼり) 小夜川 ほのか

よっつ…。
AND と OR はなんとなくわかったんですけど、NOT と XOR がまだあやふやですぅ。

星見 めい(普段) 星見 めい

NOT は簡単じゃん。
1を入れたら0、0を入れたら1。
ひっくり返すだけでしょ?

蜂谷 まこと(普段) 蜂谷 まこと

そのとおりです。
NOT は入力が1つだけの演算で、入った値を逆にするだけ。
問題は XOR ですね。
XOR は『2つが同じなら0、違うなら1』と覚えると一発です。

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

電気のスイッチで考えるとわかりやすいわ。
階段の照明、上と下のスイッチどちらでも点け消しできるでしょう?
あれがまさに XOR の動きなのよ。
どちらか片方を切り替えると状態が変わる。

星見 めい(びっくり) 星見 めい

マジか、あれ論理演算だったのか!
身近すぎてびっくりした。

蜂谷 まこと(普段) 蜂谷 まこと

真理値表で並べると違いが一目でわかります。
1 AND 1=1、1 AND 0=0。
1 OR 0=1、0 OR 0=0。
1 XOR 1=0、1 XOR 0=1。
ANDは厳しくて、ORは優しくて、XORはへそ曲がり、と覚えるのもありです。

小夜川 ほのか(笑顔) 小夜川 ほのか

ANDは厳しい…たしかに、両方そろわないと真にならないですもんねぇ。
ふふ、覚えやすいですぅ。

紫垣 こはる 先生(普段) 紫垣 こはる 先生

その調子よ。
さて、ここからが試験のポイント。
論理演算は2進数に対して『各桁ごとに』適用するの。
これを覚えておくと計算問題で迷わないわ。

紫垣 こはる 先生(普段) 紫垣 こはる 先生

たとえば 1011 AND 1100 を考えてみましょう。
桁を縦にそろえて、上から AND していくの。
結果は 1000 になるわ。

星見 めい(普段) 星見 めい

あ、ホントだ。
1と1で1、0と1で0…って各桁を別々に計算するだけじゃん。
じゃあ OR だと?

蜂谷 まこと(普段) 蜂谷 まこと

1011 OR 1100 = 1111 です。
ORはどちらかが1なら1なので、全部の桁が埋まります。
ちなみに 1011 XOR 1100 = 0111 ですね。
違う桁だけ1が立ちます。

小夜川 ほのか(笑顔) 小夜川 ほのか

桁ごとにやればいいだけなら、わたしでもできそうですぅ!

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

その意気よ。
最後にもう一つ仲間を紹介するわ。
ビット列をまるごと横にずらすシフト演算。
左に1ビットずらすと値は2倍、右に1ビットずらすと半分になるの。

星見 めい(普段) 星見 めい

ずらすだけで掛け算と割り算ができるってこと?
なんか得した気分だよね。

蜂谷 まこと(普段) 蜂谷 まこと

10進数で末尾に0を付けると10倍になるのと同じ理屈です。
2進数の世界では桁が1つ上がると2倍ですから、左シフト1回=2倍。
たとえば 1011(=11)を左に1ビットシフトすると 10110(=22)になります。

紫垣 こはる 先生(笑顔) 紫垣 こはる 先生

ふふ、よくまとまったわね。
論理演算は『はい/いいえの組み合わせルール』、ビット演算は『2進数を桁ごとに加工する道具』。
この2つの視点で整理すれば、試験の計算問題はもう怖くないわよ。

確認クイズ

2進数「1010」と「0110」の排他的論理和(XOR)の結果として正しいものはどれか。

  1. 0000
  2. 0010
  3. 1100
  4. 1110
こたえを見る

正解: 3. 1100

XORは各桁を比べて、値が異なるときだけ1になる。1010 XOR 0110 を各桁で見ると、1けた目:1と0で異なるので1、2けた目:0と1で異なるので1、3けた目:1と1で同じなので0、4けた目:0と0で同じなので0。よって結果は1100。0010は同じ2数のAND(論理積)の結果、1110はOR(論理和)の結果なので、いずれもXORでは不正解。0000はどの演算結果にも当てはまらない。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。