NAND演算【論理演算】
論理演算だよ
AND演算したのをNOT演算するよ
ひとつでも偽なら真、そうでなければ(すべて真なら)偽になるよ
簡単に書くよ
NAND演算【論理演算】(読:ナンドエンザン 英:logical NAND operation)とは
「真(true)」と「偽(false)」のどっちになるかな?を判定する演算(論理演算)のひとつ
であり
「1つでも『偽』だったら『真』になるよ。全部『真』だったら『偽』になるよ」なやつ
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・論理演算
・AND演算
・NOT演算
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
論理演算は「真(true)」と「偽(false)」のどっちになるか判定する演算です。
普通の足し算とか引き算では数字が出てきますよね。
論理演算では数字は出てきません。
出てくる値は「真(true)」と「偽(false)」だけです。
ただし、コンピュータの世界では
1:真(true)
0:偽(false)
と見なすことが多かったりします。
例えば
1 AND 0
であれば
真 AND 偽
を意図しています。
※あくまで「見なすことが多い」というだけで実際には決めの問題です。例えば「0:真」「1:偽」として扱うという独自ルールを決めていることもあり得ます。
論理演算で出てくる値は「真(true)」と「偽(false)」だけです。
計算結果も「真(true)」と「偽(false)」のどちらかになります。
「演算」というと値に対して何かするイメージを持つでしょうけどね。
あまり、そのイメージにとらわれない方が良いと思います。
何かがあります。
それに対して何かをします。
その結果が「真(true)」になるか「偽(false)」になるか判定するのが論理演算です。
AND演算は「複数の命題のうち、すべて真であれば真、そうでなければ偽と判定する論理演算」です。
「全部正しくないとダメだよ」と100点満点しか認めてくれないやつです。
試しに2つの値の組み合わせで考えてみましょう。
論理演算において、2つの値の組み合わせは
1.「0(偽)」-「0(偽)」
2.「0(偽)」-「1(真)」
3.「1(真)」-「0(偽)」
4.「1(真)」-「1(真)」
の4パターンあり得ます。
それぞれのAND演算は
1.「0(偽)」AND「0(偽)」→「0(偽)」
2.「0(偽)」AND「1(真)」→「0(偽)」
3.「1(真)」AND「0(偽)」→「0(偽)」
4.「1(真)」AND「1(真)」→「1(真)」
です。
すべて「1(真)」の場合のみ「1(真)」になります。
NOT演算は「命題が真であれば偽、偽であれば真と判定する論理演算」です。
身も蓋もない言い方をすると「逆にするよ」なやつです。
0点(NG)だったら100点(OK)になります。
100点(OK)だったら0点(NG)になります。
試しに「1(真)」と「0(偽)」で考えてみましょう。
NOT演算すると
1.「0(偽)」→「1(真)」
2.「1(真)」→「0(偽)」
に なります。
逆になっていますよね。
以上を踏まえて
複数の命題のうち、ひとつでも偽であれば真、そうでなければ(すべて真なら)偽と判定する論理演算
が「NAND演算」です。
全部正しかったらダメ、100点満点は認められないやつです。
パッと見では難しく思えるかもしれませんけどね。
実際には、そこまで難しくありません。
NAND演算は
AND演算をNOT演算したやつ
です。
試しに2つの値の組み合わせで考えてみましょう。
論理演算において、2つの値の組み合わせは
1.「0(偽)」-「0(偽)」
2.「0(偽)」-「1(真)」
3.「1(真)」-「0(偽)」
4.「1(真)」-「1(真)」
の4パターンあり得ます。
それぞれのAND演算は
1.「0(偽)」AND「0(偽)」→「0(偽)」
2.「0(偽)」AND「1(真)」→「0(偽)」
3.「1(真)」AND「0(偽)」→「0(偽)」
4.「1(真)」AND「1(真)」→「1(真)」
です。
これをNOT演算するのです。
「1(真)」と「0(偽)」を逆にします。
そうすると
1.「0(偽)」AND「0(偽)」→「0(偽)」→「1(真)」
2.「0(偽)」AND「1(真)」→「0(偽)」→「1(真)」
3.「1(真)」AND「0(偽)」→「0(偽)」→「1(真)」
4.「1(真)」AND「1(真)」→「1(真)」→「0(偽)」
に なります。
いかがでしょう。
「0(偽)」を含まない
4.「1(真)」-「1(真)」
の組み合わせのみ「0(偽)」になりましたよね。
このような
AND演算をNOT演算したやつ
がNAND演算です。
一言でまとめるよ
まぁ「NAND演算」って単語が出てきたら「ひとつでも偽であれば真、そうでなければ(すべて真なら)偽になるんだな~」と お考えください。
おまけ
■訳してみるよ
「NAND(ナンド)」は「not and(ノット・アンド)」の略です。
「not(ノット)」の意味は「~でない」とかです。
否定を意味します。
「and(アンド)」の意味は「そして」とか「~と」とかです。
「演算」は日本語ですね。
何となく くっつけると
「『そして』……ではない」演算
となります。
■検索してみる?






