基本的な論理演算をらくらくマスター!AND・OR・NOT演算がわかる!

ねこ
論理演算を勉強したけど、ANDだったりORだったり正直よくわからないのにゃあ・・・
論理演算は複雑なところがあるからね!基本をしっかり押さえて説明していくニャ!
なつめ

どうも!エンジニア兼ライターのなつめです。
今回の記事では、論理演算について知っておきたい基礎知識初心者・未経験者にもわかりやすく説明していきます。

こんな方におすすめ

  • 論理演算って何なの?詳しく知りたい!
  • 論理演算の真と偽(TrueとFalse)について詳しく知りたい!
  • AND・OR・NOT・NAND・NOR・XOR演算について理解したい!
  • 演算式・演算子・演算の条件・演算記号について理解したい!
  • 論理演算について理解できているのか、問題を解いてチェックしたい!

論理演算はエンジニアにとっての基本なので、しっかりとチェックしておきましょう。
JavaやC言語などを始めプログラミング言語をマスターするには、論理演算を理解しておく必要があります。

ぜひ最後まで読んでいってくださいね!

論理演算とは?True(真)とFalse(偽)

コンピュータ内部では、膨大なデータに対してあらゆる演算が行われています。
中枢部分であるCPUの「演算装置」が演算を担い、コンピュータは動いています。

詳しくは以下の記事で説明しているので、読んでみてね!

初心者・未経験者でもわかるコンピュータの構成

コンピュータとは何なのか?どのような処理で動作しているのか?演算装置・制御装置・CPU等のハードウェア構成など、コンピュータの構成について初心者にもわかりやすく説明している記事

続きを見る

演算の中でも、論理演算という特殊な演算があります。
論理演算は普段の演算とは異なり、True(真)とFalse(偽)2値が演算対象になります。

コンピュータは、1と0の2進数で動いていますね。
1をTrue(真)0をFalse(偽)と見立てて、論理演算は行います。

基本的な論理演算回路としては、AND・OR・NOTの3種類があります。
それぞれ詳しく説明していきましょう!

AND演算・論理積

AND演算は、論理積とも言います。
入力された値が全て「True」であった場合に、演算結果として「True」を返します。

AとBの2値を入力した時、AとBの両方が「真(つまり1)」の場合に「真(1)」になります。
AとBのいずれかが「偽(0)」の場合は、「偽(0)」になります。

論理積であるAND演算は、「AかつB(A∩B)」と覚えるといいでしょう。

なつめ
もしイメージしにくい方は、下図のランプがつくようにするにはどうしたらいいか?と考えてみよう
AとB両方のスイッチを入れないと、電流は流れませんよね。
AとBどちらかのスイッチだけONにしても、電流は流れません。

このようにAND演算は、AとBの両方がON・・・つまり「True真(1)」である必要があります。

AND演算の条件・真理値表

AND演算の条件は、上述の通り「入力値の両方がTrueの場合」です。

ここで、真理値表についても確認しておきましょう。
AND演算を真理値表で表すと、以下のようになります。

真理値表とは?

 

真理値表は、論理演算の結果を表形式で表現したものです

   
入力A 入力B 出力X(AとBの演算結果)
0 0 0
0 1 0
1 0 0
1 1 1

1=True(真)、0=False(偽)

論理演算式とベン図

AND演算の論理式は、下記です。

X = A・B

AND演算をベン図として表すと下図のようになります。
A・Bの当てはまる範囲は、赤く塗られている箇所です。

ベン図は、複雑な論理演算式を考える際に役立ちますのでチェックしておきましょう。

論理演算子

演算子とは、足し算や引き算、掛け算、割り算などの計算で使われる記号のことを言います。
私たちが慣れ親しんでいる「+」「−」「×」「÷」のことですね。

コンピュータでも、このような演算子が多く使われています。
代表的な演算子として、算術演算子、比較演算子、論理演算子があります。

算術演算子は、足し算や引き算で使われる演算子です。

加算 (+)、減算 (-)、乗算 (*)、除算 (/)

比較演算子は、イコールや大なり小なりで比較する時に使われる演算子です。

等しい (=)、大きい・小さい (> <)、以上・以下 (>= <=)

さて、本題の論理演算子です。
ANDの論理演算子は、下記です。

※プログラミング言語によって、演算子の表示は異なる場合があります

AND論理演算子:AND&&

論理演算の回路記号

AND演算の回路記号も確認しておきましょう。
ディジタル信号を扱うコンピュータにおいて、論理演算を行う電子回路のことを論理回路と言います。

以下のような論理回路の記号があれば、AND演算です。
Aから1を入力し、Bから1を入力した場合のみ、Xから1が出力されます。

なつめ
AND演算は、「1と1で1が出力」それ以外は0!と覚えてしまおう

OR演算・論理和

OR演算は、論理和とも言います。
入力された値のいずれか1つでも「True」がある場合に、演算結果として「True」を返します。

AとBの2値を入力した時、AとBのどちらか一方でも「真(つまり1)」の場合に「真(1)」になります。
AとBの両方が「偽(0)」の場合に、「偽(0)」になります。

論理和であるOR演算は、「AまたはB(A∪B)」と覚えるといいでしょう。

なつめ
イメージしにくい方は、下図のランプの付け方を考えてみよう

AとBのどちらか一方のスイッチを入れた場合にも、電流が流れます。
電流が流れないのは、AとBの両方にスイッチが入っていない場合のみです。

このようにOR演算は、AとBのどちらか一方がON・・・つまり「True真(1)」である必要があります。

OR演算の条件・真理値表

OR演算の条件は、上述の通り「入力値のいずれか一方でもTrueの場合」です。

ここで、真理値表についても確認しておきましょう。
OR演算を真理値表で表すと、以下のようになります。

入力A 入力B 出力X(AとBの演算結果)
0 0 0
0 1 1
1 0 1
1 1 1

1=True(真)、0=False(偽)

論理演算式とベン図

OR演算の論理式は、下記です。

X = A+B

OR演算をベン図として表すと下図のようになります。
A+Bの当てはまる範囲は、赤く塗られている箇所全てです。

論理演算子

ORの論理演算子は、下記です。

※プログラミング言語によって、演算子の表示は異なる場合があります

OR論理演算子:OR||

論理演算の回路記号

OR演算の回路記号も確認しておきましょう。
以下のような論理回路の記号があれば、OR演算です。

AまたはBのどちらか一方でも1を入力したら、Xから1が出力されます。
AもBも0を入力した場合のみ、Xから0が出力されます。

なつめ
OR演算は、「1があれば1を出力」!と覚えてしまおう

NOT演算・否定論理

NOT演算は、否定論理とも言います。
入力された値に対して、逆の値を演算結果として返します。

Aが「偽」の場合に「真」になり、Aが「真」の場合に「偽」になります。

なつめ
下図のランプの付け方を参考にイメージしてみよう

スイッチAがオフの場合に、電流が流れてランプが付いています。
逆にスイッチAを入れた場合は、ランプは点灯しませんね。

このようにNOT演算では、ランプを点灯させるためにAをオンではなくオフつまり「False偽」にする必要があります。

NOT演算の真理値表

真理値表についても確認しておきましょう。
NOT演算を真理値表で表すと、以下のようになります。

入力値と出力値が反転しているのがわかりますね。

入力A 出力X(AとBの演算結果)
0 1
1 0

 

論理演算は、エンジニアとしての基本の一歩ですのでしっかりとチェックしておきましょう。
最後までお読みいただき、ありがとうございます!

1=True(真)、0=False(偽)

論理演算式とベン図

NOT演算の論理式は、下記です。

NOT演算をベン図として表すと下図のようになります。
の当てはまる範囲は、赤く塗られている箇所全てです。

論理演算子

NOTの論理演算子は、下記です。

※プログラミング言語によって、演算子の表示は異なる場合があります

NOT論理演算子:NOT!

論理演算の回路記号

NOT演算の回路記号も確認しておきましょう。
以下のような論理回路の記号があれば、NOT演算です。

Aから1を入力したら、Xから逆の値である0が出力されます。
Aから0を入力した場合は、Xから1が出力されます。

AND・OR・NOT演算を組み合わせた演算式

ここまでAND・OR・NOT演算について詳しく説明してきました。
この3つは基本的な演算なので、しっかりと理解しておきましょう。

なつめ
さて、AND・OR・NOT演算を組み合わせた応用の演算式も説明していくよ!

NAND演算・否定論理積

NAND演算は、否定論理積とも言います。
入力された値が全て「Ture」であった場合に、演算結果として「False」を返します。

AとBの2値を入力した時、AとBの両方が「真(つまり1)」の場合に「偽(0)」になります。
AとBのいずれか一方もしくは両方が「偽(0)」の場合は、「真(1)」になります。

ANDである論理積NOTの否定を組み合わせた演算です。
論理積(AND)の結果を否定(NOT)したものと同じ値になります。

NAND演算の真理値表

NAND演算を真理値表で表すと以下のようになります。
AND演算と比べて、反転している値になっていることが分かりますね。

入力A 入力B 出力X(AとBの演算結果)
0 0 1
0 1 1
1 0 1
1 1 0

1=True(真)、0=False(偽)

論理演算式とベン図

NAND演算の論理式は、下記です。

NAND演算をベン図として表すと下図のようになります。

論理演算の回路記号

NAND演算の回路記号も確認しておきましょう。
以下のような論理回路の記号があれば、NAND演算です。

AとBの両方に1を入力した場合のみ、Xから0が出力されます。
それ以外では、1が出力されます。

なつめ
NAND演算は、AND演算の反転バージョン!と覚えてしまおう

NOR演算・否定論理和

NOR演算は、否定論理和とも言います。
入力された値のいずれか1つでも「Ture」がある場合に、演算結果として「False」を返します。

AとBの2値を入力した時、AとBのどちらか一方でも「真(つまり1)」の場合に「偽(0)」になります。
AとBの両方が「偽(0)」の場合に、「真(1)」になります。

ORである論理和NOTの否定を組み合わせた演算です。

論理和(OR)の結果を否定(NOT)したものと同じ値になります。

NOR演算の真理値表

NOR演算を真理値表で表すと以下のようになります。
OR演算と比べて、反転している値になっていることが分かりますね。

入力A 入力B 出力X(AとBの演算結果)
0 0 1
0 1 0
1 0 0
1 1 0

1=True(真)、0=False(偽)

論理演算式とベン図

NOR演算の論理式は、下記です。

NOR演算をベン図として表すと下図のようになります。

論理演算の回路記号

NOR演算の回路記号も確認しておきましょう。
以下のような論理回路の記号があれば、NOR演算です。

AまたはBのどちらか一方でも1を入力したら、Xから0が出力されます。
AもBも0を入力した場合のみ、Xから1が出力されます。

なつめ
NOR演算は、OR演算の反転バージョン!と覚えてしまおう

XOR演算・排他的論理和

XOR演算は、排他的論理和とも言います。
XORのほか、EOREX-ORと呼ばれることもあります。

XOR演算はこれまでの演算とは異なり、少し特殊な演算です。

入力された値が全て「True」もしくは「False」であった場合に、演算結果として「False」を返します。

AとBの2値を入力した時、AとBの両方が「真(つまり1)」もしくは「偽(つまり0)」の2つの場合に「偽(0)」になります。
AとBの入力値が「真(1)」と「偽(0)」で分かれている場合は、「真(1)」になります。

XOR演算の真理値表

XOR演算を真理値表で表すと以下のようになります。

入力A 入力B 出力X(AとBの演算結果)
0 0 0
0 1 1
1 0 1
1 1 0

1=True(真)、0=False(偽)

論理演算式とベン図

XOR演算の論理式は、下記です。

XOR演算をベン図として表すと下図のようになります。

論理演算の回路記号

XOR演算の回路記号も確認しておきましょう。
以下のような論理回路の記号があれば、XOR演算です。

AとBの両方から1もしくは0を入力したら、Xから0が出力されます。
Aから0、Bから1(もしくはAから1、Bから0)を入力した場合は、Xから1が出力されます。

なつめ
XOR演算は、入力値が同じ数の時に0になる!と覚えてしまおう

論理演算しっかり理解できてる?練習問題を解いてみよう

ねこ
論理演算について分かったような気がするにゃあ〜!
それじゃあ論理演算式について簡単な練習問題を出してみるよ!自分の理解度チェックに役立てよう
なつめ

次の文章を論理式で表してみましょう。

問1.2つの値AとBがともにTrueである時のみ、Trueとなる

+ 答えはこちら

A・B

問2.2つの値AまたはBがTrueである時のみ、Trueとなる

+ 答えはこちら

A+B

問3.2つの値AがTrueであり、かつBがFalseである時、Trueとなる

+ 答えはこちら

問4.2つの値AがTrueである、またはBがFalseである時、Trueとなる

+ 答えはこちら

問5.2つの値A、BがともにFalseである時のみ、Trueとなる

+ 答えはこちら

論理演算はTrueとFalseで成り立っている!

なつめ
論理演算について、まとめていくニャ!

 

  •  論理演算は真理値に対する演算で、演算対象はTrueとFalse

 

  • 基本的な論理演算は、3種類!
  1. AND演算
  2. OR演算
  3. NOT演算

 

  • コンピュータ内部には論理演算回路が多数組み込まれており、複数組み合わせると複雑な処理も可能になる

 

論理演算は、エンジニアとしての基本の一歩ですのでしっかりとチェックしておきましょう。
最後までお読みいただき、ありがとうございます!

-コンピュータの基礎知識

Copyright© 未経験からエンジニアBLOG , 2021 All Rights Reserved.