1.3 布尔逻辑与逻辑电路(Boolean Logic & Logic Gates)

2022-10-02
2分钟阅读时长

抽象(Abstraction)

在计算机科学中,抽象化是将资料与程序,以它的语义来呈现出它的外观,但是隐藏起它的实现细节。

抽象化是用来减少程序的复杂度,使得程序员可以专注在处理少数重要的部分。

(cr. wikipedia, link 🆚 数学抽象)

1.3.1 为何选择二进制

计算机从十进制的机电设备进化到了二进制(Binary)
的电子设备,电路的开闭表示真(true)和假(false)两种状态。

尽管晶体管可以表示超过两种状态(以不同大小的电流经过),但可表示的状态越多,越容易受噪音的扰动,就越难以区分。而二进制的 1 和 0 很容易在电路中用「通」和「断」区分出来。

同时,布尔代数作为一种仅处理两种状态的数学分支,为计算机提供了完备的运算法则和方法。

1.3.2 布尔代数

布尔代数(Boolean Algebra)由英国数学家乔治·布尔(George Boole)发明,因出于对亚里士多德基于哲学的逻辑方法进行数学式扩展的兴趣,其用逻辑方程系统而正式地证明真理,并于 1847 年的首部著作《逻辑的数学分析》中进行了介绍。

布尔代数中使用 true 和 false 两个变量进行逻辑操作,其基本运算如下:

  1. 布尔代数的基本运算可以很容易地用晶体管构建,将晶体管的控制线当作 input,将底部的电极线当作 output,则输入输出同步: 布尔代数-电路图|300
  2. 能控制电流的路径称为「门」(Gate)。
  3. 电路图中的拱门表示 2 条线没有连接,仅仅只是跨越。 布尔代数电路图|800

1.3.3 NOT 非

数学符号: $\neg$

Tips:真假倒置

真值表:

A !A

晶体管电路:

  • 上方的电极线当作 output,下方电极线接地。
  • 半导体通电 True (Input on),则线路接地,无输出电流,为 False。
  • 半导体不通电 False (Input off),则输出电流从上方输出,为 True。

!0->1

1.3.4 AND 与

数学符号:$\land$

Tips:一假则假,两真为真。

真值表:

A B A && B

晶体管电路:

  • 两晶体管串联,当且仅当 2 个晶体管都通电,输出才有电流(True)。

1&&1->1

1.3.5 OR 或

数学符号:$\lor$

Tips:一真为真,两假则假。

真值表:

A B A || B

晶体管电路:

  • 两晶体管并联,均无电流时晶体管阻塞,输出无电流为 False。

0||0->0

1.3.6 XOR 异或

数学符号:$\oplus$

Tips:不同为真,相同则假。

真值表:

A B A XOR B

晶体管电路:

0 XOR 1->1

1.3.7 逻辑门电路

作为用晶体管搭建的复杂电路的抽象,将逻辑门电路简化,用于构建更大的组件,而不至于太复杂。与、或、非以及异或门电路符号如下:

逻辑门电路符号