論理積
読み:ろんりせき
外語:AND
論理演算における積算演算(掛け算)のこと。
概要
二項演算であり、入力された論理の両方が真(true)の場合のみ真値が出力され、さもなくば偽(false)が出力される。
論理回路
二つの入力は、逆方向のダイオードを介して接続する。これを二つに分けて、片方をプルアップし、もう片方を出力とする。
入力AとBが共にローレベル(0V)である時、双方のダイオードに電流が流れる。この時は出力はほぼ0V(約0.7V)のローレベルとなり、これは偽(false)である。
入力A・Bの一方がハイレベル(5V)である時、そのダイオードには電流が流れない。しかしもう片方のダイオードに電流が流れるため、この時も出力はローレベルとなり、これは偽(false)である。
入力A・Bが共にハイレベル(5V)である時、双方のダイオードに電流が流れない。この時、出力に電流が流れるため、出力はハイレベルとなり、これは真値(true)である。
記述方法
数学や論理学(述語論理)では、一般に演算子に∧を使う(例: A∧B)。
回路設計では演算子に中黒記号の・を使うことが多い(例: A・B)。
ビット演算
プログラムで記述する場合、C、C++、Javaでは「x = a & b」のように、BASICでは「X = A And B」のように使う。
二つの式の真偽が同じ場合に真、真偽が異なる場合に偽となる。実際の用法としては、ビット列から特定のビットを落とす用途に使われる。
8ビットデータ中の下位4ビットを0とする例。outdata = indata & 0xf0;
再検索