コンピュータ回路の論理演算を完全マスター!初心者でもわかる基礎からの解説
生徒
「先生、コンピュータの仕組みを勉強していたら、『論理演算(ロンリエンザン)』という言葉が出てきたんですけど、よく分かりません。」
先生
「とても良い質問ですね。論理演算は、コンピュータ回路(コンピュータカイロ)やプログラムの動作の基本になる考え方です。特に『AND(アンド)』『OR(オア)』『NOT(ノット)』という3つの基本演算が大事なんですよ。」
生徒
「ANDとかORって、英語っぽいけど、どういう意味なんですか?」
先生
「いいですね。それじゃあ、ひとつずつ順番に分かりやすく説明していきましょう。」
1. 論理演算とは?
論理演算(ロンリエンザン)とは、0(ゼロ)と1(イチ)を使って行う計算のことです。コンピュータ(コンピュータ)はすべての情報を0と1で表現します。例えば、電気が流れている状態を「1」、流れていない状態を「0」とします。この0と1を使って「真(シン)」「偽(ギ)」という判断を行うのが論理演算です。
論理演算は、CPU(シーピーユー)という装置が実際に計算を行うときの基本的な処理でもあります。プログラミングでも、条件分岐(ジョウケンブンキ)や制御構文(セイギョコウブン)でよく使われます。
2. AND(アンド)演算とは?
AND演算は、日本語で「かつ」と訳されます。つまり、すべての条件が真(1)のときだけ結果が真(1)になる演算です。どちらか一方でも偽(0)があれば、結果は偽(0)になります。
例えば、「Aが1で、Bも1のときにランプを点灯する」という回路を考えると、AもBも電気が流れている(1)のときだけランプが点く、という動作になります。これがAND回路(アンドカイロ)の基本動作です。
| A | B | 出力(結果) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
このように、AND演算は「両方が1でなければ1にならない」という特徴があります。日常生活で言えば、「雨が降っていて、なおかつ傘を持っている場合に外に出る」といった条件に似ています。
3. OR(オア)演算とは?
OR演算は、日本語で「または」と訳されます。つまり、どちらか一方でも真(1)なら結果が真(1)になる演算です。どちらも0のときだけ結果が0になります。
例えば、「Aが押された、またはBが押されたらランプを点ける」といった回路を考えると、どちらか一方のスイッチを押すだけでランプが点きます。これがOR回路(オアカイロ)の仕組みです。
| A | B | 出力(結果) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
OR演算は、日常の考え方で言えば「AでもBでも良い」という柔軟な条件に当たります。
4. NOT(ノット)演算とは?
NOT演算は、日本語で「否定」と呼ばれます。入力が真(1)のとき結果は偽(0)、入力が偽(0)のとき結果は真(1)になるという、反転させる演算です。
例えば、「スイッチが押されていないときにランプを点ける」というような条件を作るときに使われます。入力の信号を反対にすることで、逆の動作を実現します。
| 入力 | 出力(結果) |
|---|---|
| 0 | 1 |
| 1 | 0 |
NOTは、たった一つの入力を反転させる演算で、回路ではインバータ(Inverter)と呼ばれます。英語の「invert(反転させる)」が語源です。
5. 複合演算(AND・OR・NOTの組み合わせ)
実際のコンピュータ回路では、これらの基本演算を組み合わせて複雑な処理を行います。たとえば、「(A AND B) OR (NOT C)」のように、複数の条件を組み合わせて結果を導きます。
こうした複合的な演算を整理するために、真理値表(シンリチヒョウ)を使って結果を確認する方法が一般的です。真理値表を作ると、どんな入力のときにどんな出力になるかが一目で分かります。
6. NAND(ナンド)とNOR(ノア)演算も覚えよう
ANDやORにNOTを組み合わせたものが、NAND(ナンド)演算とNOR(ノア)演算です。NANDはANDの結果を反転したもの、NORはORの結果を反転したものです。これらの演算は実際のハードウェア設計でも非常に重要です。
特にNAND回路は、他のすべての論理回路を構成できる「万能ゲート」として知られています。この性質を利用して、CPUやメモリなどの電子部品が作られています。
7. 論理演算とプログラミングの関係
論理演算は、プログラミング言語でも広く使われています。例えば、Java(ジャバ)やPython(パイソン)では、&&(AND)、||(OR)、!(NOT)などの記号を使って条件を表します。
「もしAが正しくて、Bも正しいなら処理を実行する」といった条件文を作るときに使われるので、プログラムを理解するためにも論理演算の考え方は欠かせません。
このように、論理演算はコンピュータの内部回路だけでなく、ソフトウェアの世界にも深く関係しているのです。