論理演算子 【logical operator】 ブール演算子 / Boolean operator
概要
論理演算子(logical operator)とは、プログラミング言語などに用意された、論理演算を表す記号や符号などのこと。真(true)と偽(false)の二値からなる真偽値(真理値/ブール値)に対して演算を行うことができる。論理否定(NOT)、論理和(OR)、論理積(AND)、排他的論理和(XOR)のそれぞれについて、「&&」といった1~2文字記号の組み合わせや、「and」などの符号を演算子として用いる。具体的な演算子の定義は言語によって異なる。否定論理積(NAND)や否定論理和(NORなどの演算子が用意されている場合もある。
NOTは「!a」(aではない)のように演算対象となる被演算子(オペランド)を一つ記述する単項演算子で、他は「a && b」(aかつb)のように二つを記述する二項演算子である。「a && b && c」(aかつbかつc)のように三つ以上を連結することもでき、複数の論理演算のどれを先に計算するか優先順位が決まっている(ほとんどの場合NOT→AND→ORの順)。
論理演算子とビット演算子
コンピュータでは1ビットの値の1を真に、偽を0に置き換えて論理演算子を行うことが頻繁にあり、二つのビット列のそれぞれ対応する桁にある値同士(NOTではビット列の各桁の値)で論理演算を行うことをビット演算という。
ビット演算のための演算子をビット演算子と呼び、各論理演算子に対応する演算を行うためのビット演算子が別に用意されていることが多い。例えばC言語や多くの派生言語では「&&」が論理演算のAND、「&」がビット演算のAND、「||」が論理演算のOR、「|」がビット演算のORとなっている。
(2019.1.19更新)