[情報処理基礎学習]③論理演算と表記法

論理演算はできなきゃ困る、表記法は使うことない

論理演算

表記方法はいくつかあるようなので注意。以下は一例。

※1.XORの例。XANDは無い(あったら常にFalseだろうか)。

●論理一致素子
これは「否定排他的論理和(XNOR)」のこと。XORのNOT。
入力が同じ場合(True同士、False同士)にTrueになるので、同値や等価とも呼ばれる。
表で確認

※ド・モルガンの法則とか、半加算器、全加算器は省略。

表記法

(1) BNF

構文定義の一手法。正規表現っぽい。

e.g.
「<数字>::=0|1|2|3|4|5|6|7|8|9」
「<数字列>::=<数字>|<数字列><数字>」(単独の数字または繰り返し)
「<小数>::=[<数字列>]<.><数字列>」(整数部は省略可能)

(2) 逆ポーランド法

数式を機械的に解釈する表記法
「<数値><数値><演算子>」で表す。

e.g.「元の式 e = a – b ÷ (c + d)」
計算順序どおりに全部括弧をつけると「e = (a – (b ÷ (c + d)))」
逆ポーランド法で表記すると「eabcd+÷-=」となる。

(3) ポーランド法

逆ポーランド法の逆に表記する。
「<演算子><数値><数値>」で表す。

e.g.「元の式 e = a – b ÷ (c + d)」
ポーランド法で表記すると「=e-a÷b+cd」となる。