コンテンツにスキップ

論理演算

前の章で学んだ命題や真理値表の考え方を発展させたのが論理演算です。論理演算は、コンピュータの内部で条件判定や計算を行うための基本的な仕組みであり、プログラムの条件分岐(if文)やデータベースの検索条件、さらには電子回路の設計にも直結しています。

論理演算とは、真(1)と偽(0)の2つの値だけを対象にした演算です。コンピュータは電気信号のON(1)/ OFF(0)で動作するため、論理演算はコンピュータの最も基本的な処理です。

基本的な論理演算には、AND(論理積)、OR(論理和)、NOT(否定)、XOR(排他的論理和)の4つがあります。

AND(論理積)は、すべての入力が真(1)のときだけ結果が真(1)になる演算です。日本語では「かつ」に相当します。

ABA AND B
000
010
100
111

身近な例で考えると、「ユーザー名が正しい かつ パスワードが正しい」の両方を満たしたときだけログインできるのがANDの考え方です。どちらか一方でも間違っていればログインできません。

集合で学んだ積集合(A ∩ B)は、ANDに対応します。

OR(論理和)は、少なくとも1つの入力が真(1)であれば結果が真(1)になる演算です。日本語では「または」に相当します。

ABA OR B
000
011
101
111

身近な例では、「学生証を持っている または 65歳以上である」のどちらかを満たせば割引が適用されるような場面がORの考え方です。

集合で学んだ和集合(A ∪ B)は、ORに対応します。

NOT(否定)は、入力の真偽を反転させる演算です。真(1)を偽(0)に、偽(0)を真(1)に変えます。

ANOT A
01
10

NOTは他の演算と異なり、入力が1つだけの演算(単項演算)です。

集合で学んだ補集合(Ā)は、NOTに対応します。

XOR(排他的論理和、エクスクルーシブ・オア)は、2つの入力が異なるときだけ結果が真(1)になる演算です。「どちらか一方だけが真」のときに真となります。

ABA XOR B
000
011
101
110

ORとの違いに注目しましょう。ORは「両方とも真」のときも真になりますが、XORは「両方とも真」のときは偽になります。

入力ORXOR
A=0, B=000
A=0, B=111
A=1, B=011
A=1, B=110

身近な例では、「和食か洋食のどちらか一方を選べる定食セット」がXORの考え方です。両方選ぶことはできません。

試験で出るポイント

4つの論理演算の真理値表は必ず覚えましょう。特にANDとORの違い、ORとXORの違いが問われます。ANDは「すべて1のときだけ1」、ORは「1つでも1なら1」、XORは「異なるときだけ1」と整理すると覚えやすくなります。
演算記号意味結果が1になる条件集合との対応
ANDかつすべての入力が1積集合(∩)
ORまたは少なくとも1つが1和集合(∪)
NOT¬でない入力が0補集合(Ā)
XOR排他的論理和入力が異なる

論理演算は、データベースやWeb検索エンジンの条件検索で日常的に使われています。

たとえば、ある企業の社員データベースから特定の条件で社員を検索する場面を考えてみましょう。

検索条件使う論理演算意味
部署が「営業」AND 勤続年数が「5年以上」AND両方の条件を満たす社員
資格が「基本情報」OR 資格が「ITパスポート」ORどちらかの資格を持つ社員
NOT 部署が「管理」NOT管理部以外の社員

Web検索でも同様の考え方が使われています。Googleなどの検索エンジンで複数のキーワードをスペースで区切って入力すると、通常はAND検索(すべてのキーワードを含むページ)として処理されます。

「プログラミング経験があり、かつ、英語または中国語ができる社員」を検索する場合、次のように条件を組み合わせます。

プログラミング AND(英語 OR 中国語)

このように、括弧を使って演算の優先順位を明示することで、複雑な条件も正確に表現できます。

試験で出るポイント

論理演算を使った条件検索は実務的な応用問題として出題されます。AND検索は「結果が絞り込まれる(件数が減る)」、OR検索は「結果が広がる(件数が増える)」という特徴を押さえておきましょう。また、XOR(排他的論理和)は暗号化やエラー検出にも応用される重要な演算です。

アプリで問題を解こう!