■ ブール代数とは
イギリスの数学者 ブール(George Boole) が1854年の著書「思考の法則に関する研究」で
提唱した記号論理学を ブール代数(Boolean algebra) と呼び,
1 または 0 の2値のみをもつ変数を用いる論理である.
2値代数,2値論理数学,ディジタル代数,スイッチング代数などとも呼ばれる
真(true) または 偽(false) が
明確な文章を 命題(statement) という.ブール代数では一般に命題を記号
A, B, C, ... という変数で表し,その命題が真であれば “1” ,
偽であれば “0” という2つの記号で表す.例えば 『風が吹く』 という命題を
A とするとき,風が吹けば
“A は真である” といい,
A = 1 と表す.また風が吹かなければ
“A は偽である” といい,
A = 0 と表す.
■ 基本となる論理演算
ブール代数においては基本となる論理演算として次の3つがある.
この3つの演算でブール代数の全ての演算を表現することができる.
- (1) NOT演算(NOT operation)
-
変数 A のNOT演算(否定,反転)をここでは
A ( A の上に横棒)と表し,「ノット A 」,
「 A バー」,
「 A の否定」,
「 A の反転」などと読む.
¬ A と表記する場合もある.
NOT演算は否定(反転)すなわち,
A = 1 のとき,A = 0
A = 0 のとき,A = 1
この論理演算を関数で表現すると,NOT演算(否定,反転)の関数
f は
f ( A ) = A
となる.
実際の電子回路において,論理演算は 論理ゲート(logical gate) あるいは
単にゲートと呼ばれる電子デバイスで行われる.ゲートは1つ以上の入力信号に対して
1つの出力信号を出す.入力および出力は
2値(電圧の高・低,スイッチのオン・オフなど)を取るため
ブール代数として "1", "0" を用いて表現する.
NOT演算(否定)を行うゲートはNOTゲートと呼び,
次の回路記号で表す.
| A |
|
A |
この図は左側が入力で右側が出力を表している.
正確には「△」の部分はバッファ(バッファとは入力と同一の出力をする処理で
論理演算としては特に意味はないが電子回路の入出力ゲートとして記述される
場合がある)を表す記号で,否定の意味を表現しているのは「○」記号である.
他の論理ゲートの入力部・出力部に「○」記号を付けることもある.
この表記法はMIL記法と呼ばれるもので,米国軍用規格(Military Standard)として
決められているものである.JIS規格の表記法もあるが一般的には
MIL記法を使われることが多い.
- (2) OR演算(OR operation)
-
変数 A, B のOR演算(論理和)をここでは
A + B と表し,
「 A オア B 」,
「 A または B 」,
などと読む.OR演算(論理和)は A, B 2つの入力のうち,
どちらかでも "1" である場合に "1" を出力し,2入力が両方とも "1" であっても "1" を
出力する.すなわち,いずれか1つでも入力が"1" であれば,"1" を出力する.
f ( A, B ) =
A + B
A = 0, B = 0 のとき,
A + B = 0
A = 0, B = 1 のとき,
A + B = 1
A = 1, B = 0 のとき,
A + B = 1
A = 1, B = 1 のとき,
A + B = 1
OR演算(論理和)を行うゲートはORゲートと呼び次の回路記号で表す.
入力信号が3つ以上の場合は2入力を繰り返すことで同様に演算できる.
A B |
|
A + B |
|
A B C |
|
A + B + C |
- (3) AND演算(AND operation)
-
変数 A, B のAND演算(論理積)は
A・B
または演算記号を省略して AB と表し,
「 A アンド B 」,
「 A かつ B 」,
などと読む.AND演算(論理積)は,全ての入力が "1" である場合に "1" を出力し,
1つでも入力が "0" であれば "0" を出力する.
f ( A, B ) =
AB
A = 0, B = 0 のとき,
AB = 0
A = 0, B = 1 のとき,
AB = 0
A = 1, B = 0 のとき,
AB = 0
A = 1, B = 1 のとき,
AB = 1
AND演算(論理積)を行うゲートはANDゲートと呼び次の回路記号で表す.
入力信号が3つ以上の場合も同様に演算できる.
A B |
|
AB |
|
A B C |
|
ABC |
■ 真理値表
論理演算をわかりやすく次のような表にしたものを
真理値表(truth table)という.
NOT演算
|
OR演算
|
A B
|
A + B
|
0 0
0 1
1 0
1 1
|
0
1
1
1
|
|
AND演算
|
A B
|
AB
|
0 0
0 1
1 0
1 1
|
0
0
0
1
|
|
【練習問題】
- 1. 次の論理回路から得られる真理値表を作成せよ.
-
(1) |
A B |
|
f ( A, B ) |
| (2) |
A B |
|
f ( A, B ) |
| (3) |
A
B |
|
f ( A, B ) |
(4) |
A B C |
|
f ( A, B, C ) |
- ※ 論理回路中の黒丸●は信号の分配(分岐)を表す.
- 2. 次に示す真理値表と同じ論理演算の関数 f ( A, B ) を求めよ.
|
A B
|
f ( A, B )
|
0 0
0 1
1 0
1 1
|
1
0
0
1
|
|