Blogブログ

論理演算について

happylifecreatorsの信尾海翔です。
第二回目のブログでは論理演算についてまとめたいと思います

論理演算とは

2進数(0、1)など、2種類の状態だけで行う演算です。
10進数には四則演算(加算演算、減算演算、乗算演算、除算演算)などがあるように2進数にも色々な演算があります。
良く使われるものとしてAND演算、OR演算、XOR演算、NOT演算などがあります。

AND演算(論理演算)

AND演算は各bit同士を比較し、お互いが真(1)の場合に1、それ以外は0を結果とします。

x = 110
y = 101

右のbitから順に比較すると
x = 0、y = 1 結果は0
x = 1、y = 0 結果は0
x = 1、y = 1 結果は1

xとyをAND演算した結果は100となります。

OR演算(論理和)

OR演算は各bit同士を比較し、どちらかに真(1)がある場合に1、それ以外は0を結果とします。

x = 110
y = 101

右のbitから順に比較すると
x = 0、y = 1 結果は1
x = 1、y = 0 結果は1
x = 1、y = 1 結果は1

xとyをOR演算した結果は111となります。

XOR演算(排他的論理和)

XOR演算は各bit同士を比較し、お互いが真(1)と偽(0)の場合に1、それ以外は0を結果とします。

x = 110
y = 101

右のbitから順に比較すると
x = 0、y = 1 結果は1
x = 1、y = 0 結果は1
x = 1、y = 1 結果は0

xとyをOR演算した結果は011となります。

NOT演算(論理否定)

NOT演算は与えられた、2進数を反転(0 → 1、1 → 0)します。

x = 110
y = 101

xとyをそれぞれNOT演算した結果は

x = 001
y = 010

となります。

上記の演算に否定(N)がついた演算も存在します。

否定論理積(NAND) → 各bit同士を比較し、お互いが真(1)の場合に0、それ以外は1を結果とします。
否定論理和(NOR) → 各bit同士を比較し、お互いが偽(0)の場合は1、それ以外は0を結果とします。
否定排他的論理和(NXOR) → 各bit同士を比較し、お互いが同じ(真と真、偽と偽)の場合に1、それ以外は0を結果とします。

余談

論理演算は基本情報技術者試験の定番問題としてよく出てきたことを覚えています。
問題としては論理演算を行う回路を複数回通った数値(x、y)はどのようになるか?などが多かった気がします。
一度、論理演算の仕組みと、どの形の回路がどんな演算をするかを覚えてしまえば、
比較的得点と取りやすい問題なので、本番で出題されれば、確実に取ろうと意識して対策していました。

今回は以上となります。
次回はシフト演算についてブログでまとめる予定です。

信尾

執筆者

Developer

信尾