論理演算の解説(基本情報技術者シラバス用語)

目次

論理演算とは

論理演算(ろんりえんざん)とは、「真(正しい、ON、1)」と「偽(誤り、OFF、0)」という2つの値だけを対象に行う計算のことです。普通の数学の四則演算(足し算や引き算)とは異なり、条件が成り立っているかどうかを判定するために使われます。基本となる演算には、両方が真のときだけ真になる「AND(論理積)」、どちらか一方が真なら真になる「OR(論理和)」、真と偽を反転させる「NOT(論理否定)」、2つの値が異なるときだけ真になる「XOR(排他的論理和)」があります。コンピュータはこれら論理演算の組み合わせによって、複雑なプログラムの分岐処理やデータの暗号化、足し算などの計算をすべて行っています。

具体例

スマートフォンの画面ロック解除や、Webサイトのログイン判定などを想像すると分かりやすいです。

【AND(論理積)の例】
「パスワードが正しい」かつ「ワンタイムコードが正しい」
この2つの条件が両方とも「真」のときだけ、ログインが成功(真)します。

【OR(論理和)の例】
「指紋認証が成功した」または「顔認証が成功した」
どちらか一方が「真」であれば、画面ロックが解除(真)されます。

もう少し詳しく

論理演算は、プログラミングにおける「条件分岐(if文)」だけでなく、コンピュータを構成する電子回路のレベル(ハードウェア)においても極めて重要な役割を果たしています。CPUの内部には、「論理回路(ロジックゲート)」と呼ばれる微小な電子部品が無数に組み込まれており、これらが物理的にANDやOR、NOTの動作を行っています。
この論理演算の組み合わせだけで、実は驚くべきことに、通常の四則演算(足し算や引き算など)を含めたあらゆる計算を実現することができます。例えば、「XOR(排他的論理和)」は2つの入力が異なるときに1を出力しますが、これは2進数の1桁同士の足し算の「繰り上がりを無視した結果」と全く同じになります。これに「AND(両方が1のときだけ1)」を組み合わせて繰り上がりの条件を検知することで、完全な足し算を行う回路(加算器)を作ることができます。
また、ソフトウェアの分野では、ビット単位での論理演算(ビット演算)がデータの加工に頻繁に使われます。代表的なテクニックが「マスク処理」です。例えば、IPアドレスからネットワーク部分だけを抽出するサブネットマスクのように、データのある部分だけを残して他の部分をゼロにクリアしたい場合には、残したい場所に「1」、消したい場所に「0」を置いたデータを用意して、元のデータと「AND」を取ります。逆に、特定のビットだけを強制的に「1」にしたい場合は「OR」を使い、特定のビットだけを反転(0と1を入れ替え)させたい場合には「XOR」を使います。

試験でのポイント

資格試験において論理演算は、必ず出題される超重要テーマです。まずはAND、OR、NOT、XOR、NAND(ANDの否定)、NOR(ORの否定)のそれぞれの「真理値表(入力の組み合わせに対する出力結果の表)」を完璧に暗記しておく必要があります。特にXOR(排他的論理和)は、「2つの値が同じなら0、違うなら1」という性質が暗号化技術やデータの誤り検出などで多用されるため、単独でよく狙われます。
また、実際の試験問題では「ある8ビットのデータ(例えば 10110011)の上位4ビットだけを反転させるためには、どのデータと何の論理演算を行えばよいか?」といった実践的なマスク処理の問題が出題されます。この場合、「反転させるのはXOR」「反転させたい部分を1、そのままにしたい部分を0にする」というルールを思い出し、「00001111 と XOR をとる」と論理的に答えを導き出せるようトレーニングしておくことが重要です。さらに、複雑な論理式を簡単にするための「ド・モルガンの法則」も併せてマスターしておくと、解答スピードが格段に上がります。

関連する用語

条件を整理するためのベン図や、複雑な条件式を紐解くためのド・モルガンの法則、データの特定の桁だけを操作するマスク処理などと深く関連し合いながら使われます。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ