たとえばシェルにprint(1 and 0)を入力してEnterキーを押すと0が表示されるますが、これは何を意味するのでしょう? この理解には、LEDの点灯と消灯が役に立ちます。
LEDの点灯と消灯と、電気や電圧、オン/オフ、True/Falseとの関係は、次の表で表されます。
LED | 点灯 | 消灯 |
電気 | 流れる | 流れない |
電圧 | HIGH | LOW |
デジタル | ON 1 | OFF 0 |
論理値 | 真(True) | 偽(False) |
目次
AND演算 and(かつ)
AND演算は、AとBの両方が1(True)のときだけ、結果が1(True)になる演算です。これは、LEDの回路で考えると、下図のようになります。
AがオンでBがオフのとき、回路はつながらないので、LEDは点かない。結果は0(False)。
AがオフでBがオフのとき、回路はつながらないので、LEDは点かない。結果は0(False)。
AがオンでBがオンのとき、回路はつながるので、LEDは点灯する。結果は1(True)。
このすべての場合を表で表す(真理値表)と、次のようになります。
OR演算 or (または)
OR演算では、AとBの一方でも1(True)のとき、結果が1(True)になります。これは、LEDの回路で考えると、下図のように表せます。
この回路では、AかBどちらかのスイッチがオンになると、そこを電流が流れるので、LEDが点灯します。場合分けの表(真理値表)は次のようになります。
基本的な論理回路にもう1つ、NOTと呼ばれるものがあります。
NOT演算 not (否定、~でない)
これは、ANDやORと異なり、1つの入力だけを扱いAがオンならオフに、オフならオンにします。