はじめに
基本情報技術者の書籍を読み進めていて、ずっとインプットばかりではよくないと思い記事にしてまとめてみようと思いました。基本的なことを書くので物足りないところもあるかと思いますが読んでいただけると嬉しいです。
論理演算とは
ます、論理演算というのは簡単にいうと真の値(条件が成立する場合)と偽の値(条件が成立しない場合)の二つの値を使って行う演算のことです。2進数の1(真)か0(偽)の入力値に対して一つの値を出力します。学生のときに「ベン図」というのを習ったことがある方も多いと思います。
こういう図ですね。
Aに一致するグループ(Aが真)とBに一致するグループ(Bが真)、AとBのどちらのグループにもなっていない値など、様々なことを視覚的に表すことができる非常に便利な図ですね。まさにこれが論理演算です。
論理積(AND)
論理積(AND)では、二つの条件の両方が合致する場合に真となります。
ANDを「かつ」と考えていただければ大丈夫です。
Aの値が1(真)でBの値も1(真)の場合に真(1)になります。Aが0(偽)でBが1(真)の演算結果は0(偽)になります。
論理和(OR)
論理和では、二つの条件のいずれかが合致する場合に真となります。
ORは「または」と訳して考えます。演算する値のどちらか一方が1(真)なら真になります。
つまり、「AまたはBが真なら結果は真」ということになります。
否定(NOT)
否定(NOT)では、ある条件の「合致しない」ものを真とします。これは一つの値に対して行う演算です。
一つの値が反転します。例えば2進数の場合は1と0しかないので1なら0に、0なら1にするということです。
排他的論理和(XOR)
これは、OR演算と似ていますが少し異なります。
演算する値の両方が1(真)なら結果が0になります。両方が0でも結果が0になります。
Aが1(真)でBが0(偽)のときに1(真)になります。演算する値が同じなのを嫌うというイメージですね。