目次
はじめに
基本情報技術者試験の勉強を始めて、論理演算の問題に戸惑うことが多くありました。真理値表やMIL記号、ベン図など、見慣れない表現が多く登場するため、体系的に整理する必要性を感じました。今回は論理演算の基本から実践的な内容まで、備忘録としてまとめます。
基本論理演算一覧
まず、本記事で解説する基本的な論理演算を一覧表にまとめました。各論理演算の詳細は後続のセクションで解説します。
論理演算の基本概念
【論理演算とは】
論理演算(真偽値を扱う計算)は、コンピュータの基盤となる計算方式です。すべての入力を「真(1)」または「偽(0)」の2つの状態で表現し、特定のルールに従って計算を行います。
【なぜ論理演算が重要なのか】
コンピュータは内部で電気信号のオン・オフ(真偽値に対応)だけで動作しています。複雑な計算や判断も、すべて論理演算を組み合わせて実現されます。
主要な論理演算の詳細
【AND演算】
AND演算は「両方とも真のとき、真を返す」演算です。日常では「〜かつ〜」という表現に相当します。
たとえば、オンラインショッピングで「在庫がある」かつ「配送可能地域である」という2つの条件が満たされて初めて、購入ボタンが有効になるケースが該当します。
【OR演算】
OR演算は「少なくとも1つが真のとき、真を返す」演算です。日常では「〜または〜」という表現に相当します。
たとえば、会員登録で「メールアドレス」または「電話番号」のどちらか一方を入力すれば登録できるケースが該当します。
【NOT演算】
NOT演算は「入力を反転させる」演算です。真を偽に、偽を真に変換します。
たとえば、「ログイン中でない」状態を判定する場合、ログイン状態にNOT演算を適用します。
【NAND演算】
NAND演算は「ANDの結果を反転させる」演算です。NOT AND(ノット・アンド)を縮めた名称になります。
「両方とも真でない限り、真を返す(両方とも1のときだけ0になる)」という動作をします。実際の回路では、NAND回路だけですべての論理演算を構成できるため(万能性)、非常に重要な演算です。
【NOR演算】
NOR演算は「ORの結果を反転させる」演算です。NOT OR(ノット・オア)を縮めた名称になります。
「どちらも偽のときのみ、真を返す(両方とも0のときだけ1になる)」という動作をします。NAND演算と同様に、NOR回路だけですべての論理演算を構成できる性質があります。
【XOR演算】
XOR(排他的論理和)演算は「入力が異なるとき、真を返す(入力が異なるとき1になる)」演算です。日常では「どちらか一方だけ」という表現に相当します。
たとえば、エレベーターの上昇・下降ボタンは、どちらか一方だけが押された状態が正常です。両方押されている、または両方押されていない状態は異常と判定できます。
XOR演算は暗号化やエラー検出などで重要な役割を果たします。
【XNOR演算】
XNOR演算は「XORの結果を反転させる」演算です。「入力が同じとき、真を返す」という動作をします。
等値判定(2つの値が等しいかどうかの確認)に使用されることが多い演算です。
真理値表とベン図
【真理値表の見方】
真理値表(すべての入力パターンと対応する出力を表形式で示したもの)は、論理演算の動作を確認する基本的な方法です。
以下は主要な論理演算の真理値表をまとめたものです。
| A | B | AND | OR | NOT A | NAND | NOR | XOR | XNOR |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
各列は対応する論理演算の出力結果を示しています。
この表から以下のことが読み取れます。
- AND演算は入力が(1, 1)のときだけ1を出力
- OR演算は入力に1つでも1があれば1を出力
- XOR演算は入力が異なるときに1を出力
- NAND演算はAND演算の出力をすべて反転したもの
【ベン図による理解】
ベン図(集合の関係を円で表した図)を使うと、論理演算を視覚的に理解できます。2つの集合AとBがあるとき、各論理演算は以下のように表現されます。
上の図が示すように、青く塗られた部分が「真(1)」を表す領域です。
- AND演算: AとBの重なる部分のみが真(積集合)
- NAND演算: AとBの重なる部分以外が真(ANDの否定)
- OR演算: AまたはBの領域全体が真(和集合)
- NOR演算: AとBのどちらにも属さない外側の領域が真(ORの否定)
この他にも以下の演算をベン図で表現できます。
- NOT演算: Aの外側の領域(補集合)
- XOR演算: AとBの重ならない部分(対称差)
ベン図で考えると、複雑な論理式も直感的に理解しやすくなります。たとえば「AかつBでない」という条件は、Aの領域からBとの重なりを除いた部分として視覚化できます。
MIL記号の読み方
【MIL記号とは】
MIL記号(論理回路を図で表現する標準的な記号)は、アメリカ国防総省が定めた規格に基づく表記法です。基本情報技術者試験では、MIL記号を使った論理回路図の問題が頻出します。
MIL記号の読み方のコツは、出力側の小さな○に注目することです。この○が付いていれば、基本演算の結果を反転させることを意味します。
たとえば、AND回路に○が付いたものがNAND回路、OR回路に○が付いたものがNOR回路になります。
| 論理演算 | MIL記号 |
|---|---|
AND |
|
NAND |
|
OR |
|
NOR |
論理演算の法則
【基本的な法則】
論理演算には、数学の代数と似た法則があります。これらの法則を使うと、複雑な論理式を簡単化できます。
べき等法則(べきとうほうそく)
同じ値を演算しても、結果は元の値と同じになります。
A・A = AA+A = A
たとえば「雨が降っている」かつ「雨が降っている」という条件は、単に「雨が降っている」と同じ意味です。
交換法則
入力の順序を入れ替えても結果は変わりません。
A・B = B・AA+B = B+A
分配法則
乗算の分配法則と同様に、AND演算とOR演算の間で分配が成り立ちます。
A・(B+C) = A・B + A・CA+(B・C) = (A+B)・(A+C)
結合法則
3つ以上の入力がある場合、どの順番で計算しても結果は変わりません。
(A・B)・C = A・(B・C)(A+B)+C = A+(B+C)
【特殊な法則】
ド・モルガンの法則
NOT演算をANDやORに適用するとき、以下の変換ができます。
- $\overline{A \cdot B} = \overline{A} + \overline{B}$
- $\overline{A + B} = \overline{A} \cdot \overline{B}$
この法則は、論理式の否定を簡単に表現する際に非常に便利です。
法則の意味
第1法則:$\overline{A \cdot B} = \overline{A} + \overline{B}$
「AとBの積(AND)の否定」は「Aの否定 または Bの否定」と等しい
具体例で考えてみます。
- 左辺 $\overline{A \cdot B}$:「太郎と花子が両方とも来る、ということはない」
- 右辺 $\overline{A} + \overline{B}$:「太郎が来ない または 花子が来ない」
「両方とも来る」の否定は「少なくとも一方は来ない(片方だけ来る)」ことを意味します。これには以下の3つのケースが含まれます。
- 太郎だけ来ない(花子は来る)→「太郎が来ない」が真
- 花子だけ来ない(太郎は来る)→「花子が来ない」が真
- 両方とも来ない →「太郎が来ない」も「花子が来ない」も真
これらすべてのケースで「太郎が来ない または 花子が来ない」という条件を満たすため、両辺は等しくなります。
第2法則:$\overline{A + B} = \overline{A} \cdot \overline{B}$
「AまたはBの和(OR)の否定」は「Aの否定 かつ Bの否定」と等しい
具体例で考えてみます。
- 左辺 $\overline{A + B}$:「太郎または花子が来る、ということはない」
- 右辺 $\overline{A} \cdot \overline{B}$:「太郎が来ない かつ 花子が来ない」
「少なくとも一方が来る」の否定は「両方とも来ない(片方だけ来る)」ことを意味します。つまり、太郎も来ず、花子も来ない状態です。これは「太郎が来ない かつ 花子が来ない」という条件そのものなので、両辺は等しくなります。
ポイント
否定(上線)を分配すると、演算子が反転します。
- AND(・)→ OR(+)
- OR(+)→ AND(・)
排他的論理和(XOR)の公式
排他的論理和(A⊕B)は、「AとBのどちらか一方だけが真」のときに真になる演算です。
基本演算での表現
A⊕B = Ā・B + A・B̄A⊕B = (A+B)・(Ā+B̄)
第1式の意味:A⊕B = Ā・B + A・B̄
「Aが偽でBが真」または「Aが真でBが偽」
具体例:「太郎が来ないで花子が来る」または「太郎が来て花子が来ない」= 「どちらか一方だけが来る」
第2式の意味:A⊕B = (A+B)・(Ā+B̄)
「少なくとも一方が真」かつ「少なくとも一方が偽」
具体例:「太郎または花子が来る」かつ「太郎が来ないまたは花子が来ない」= 「両方が来ることはなく、両方が来ないこともない」= 「どちらか一方だけが来る」
排他的論理和の性質
-
A⊕0 = A(0との排他的論理和は元の値のまま) -
A⊕1 = Ā(1との排他的論理和は値が反転) -
A⊕A = 0(同じ値同士は必ず偽) -
A⊕Ā = 1(値とその否定は必ず真)
性質の具体例
- 「スイッチAがON」⊕「何もない(0)」= 「スイッチAがON」
- 「スイッチAがON」⊕「常にON(1)」= 「スイッチAがOFF」
- 「スイッチAがON」⊕「スイッチAがON」= 「偽(両方同じなので)」
- 「スイッチAがON」⊕「スイッチAがOFF」= 「真(必ず異なるので)」
吸収法則
一方の項が他方を含む場合、簡単化できます。
A・(A+B) = AA+(A・B) = A
たとえば「会員である」かつ「会員であるまたはゲストである」という条件は、単に「会員である」と同じです。
吸収法則の証明
真理値表を使って、吸収法則が成り立つことを確認してみましょう。
第1法則:A・(A+B) = A の証明
| A | B | A+B | A・(A+B) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 |
A・(A+B)の列とAの列が完全に一致しているため、A・(A+B) = A が証明されました。
第2法則:A+(A・B) = A の証明
| A | B | A・B | A+(A・B) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
A+(A・B)の列とAの列が完全に一致しているため、A+(A・B) = A が証明されました。
証明のポイント
どちらの式も、Bの値に関わらず、常にAの値と同じ結果になります。つまり、Bの項は結果に影響を与えず、「吸収」されてしまうのです。
復元の法則
否定を2回適用すると、元の値に戻ります。
A̅̅ = A
「雨が降っていないことはない」= 「雨が降っている」ということです。
補元の法則
ある値とその否定との演算は、常に一定の結果になります。
A・Ā = 0A+Ā = 1
たとえば「雨が降っている」かつ「雨が降っていない」は必ず偽(0)、「雨が降っている」または「雨が降っていない」は必ず真(1)になります。
恒等の法則
論理値の1(真)と0(偽)との演算には、以下の性質があります。
A・1 = AA+0 = AA・0 = 0A+1 = 1
1(真)はAND演算での恒等元、0(偽)はOR演算での恒等元として機能します。また、0とのAND、1とのORは常に一定の結果になります。
【法則の実践的な使い方】
試験では、与えられた論理式を簡単化する問題が出題されます。たとえば、以下のような式を考えます。
$A \cdot B + A \cdot \bar{B}$
この式は、分配法則を逆に適用すると以下のように簡単化できます。
$A \cdot (B + \bar{B})$
さらに、補元の法則を適用させると、B + B̄は常に真(1)なので、恒等の法則を適用させ、最終的に以下になります。
A・1 = A
このように、法則を組み合わせて使うことで、複雑な論理式を大幅に簡単化できます。
試験での出題傾向
【頻出問題パターン】
基本情報技術者試験では、論理演算に関する以下のような問題が出題されます。
- 真理値表から論理式を導出する問題
- MIL記号で表された回路図の出力を求める問題
- 論理式を簡単化する問題
- 与えられた条件を論理式で表現する問題
特に、MIL記号を使った回路図の問題は毎回出題される傾向があります。
【効果的な学習方法】
論理演算を確実に理解するためには、以下の学習が効果的です。
- 各論理演算の真理値表を自分で作成してみる
- MIL記号を見て、すぐに演算名が言えるように練習する
- 簡単な論理式から始めて、徐々に複雑な式に挑戦する
- 過去問を繰り返し解いて、出題パターンに慣れる
特に、真理値表は手を動かして作ることで、各演算の特徴が記憶に定着しやすくなります。
まとめ
論理演算は、コンピュータの動作原理を理解する上で欠かせない基礎知識です。真理値表、MIL記号、ベン図、そして論理演算の法則を体系的に学ぶことで、基本情報技術者試験の関連問題に対応できるようになります。
