1.3 布尔逻辑与逻辑电路(Boolean Logic & Logic Gates)
2022-10-02
2分钟阅读时长
抽象(Abstraction)
在计算机科学中,抽象化是将资料与程序,以它的语义来呈现出它的外观,但是隐藏起它的实现细节。
抽象化是用来减少程序的复杂度,使得程序员可以专注在处理少数重要的部分。
1.3.1 为何选择二进制
计算机从十进制的机电设备进化到了二进制(Binary)
的电子设备,电路的开闭表示真(true)和假(false)两种状态。
尽管晶体管可以表示超过两种状态(以不同大小的电流经过),但可表示的状态越多,越容易受噪音的扰动,就越难以区分。而二进制的 1 和 0 很容易在电路中用「通」和「断」区分出来。
同时,布尔代数作为一种仅处理两种状态的数学分支,为计算机提供了完备的运算法则和方法。
1.3.2 布尔代数
布尔代数(Boolean Algebra)由英国数学家乔治·布尔(George Boole)发明,因出于对亚里士多德基于哲学的逻辑方法进行数学式扩展的兴趣,其用逻辑方程系统而正式地证明真理,并于 1847 年的首部著作《逻辑的数学分析》中进行了介绍。
布尔代数中使用 true 和 false 两个变量进行逻辑操作,其基本运算如下:
- 布尔代数的基本运算可以很容易地用晶体管构建,将晶体管的控制线当作 input,将底部的电极线当作 output,则输入输出同步:
- 能控制电流的路径称为「门」(Gate)。
- 电路图中的拱门表示 2 条线没有连接,仅仅只是跨越。
1.3.3 NOT 非
数学符号: $\neg$
Tips:真假倒置
真值表:
A | !A |
---|---|
真 | 假 |
假 | 真 |
晶体管电路:
- 上方的电极线当作 output,下方电极线接地。
- 半导体通电 True (Input on),则线路接地,无输出电流,为 False。
- 半导体不通电 False (Input off),则输出电流从上方输出,为 True。
1.3.4 AND 与
数学符号:$\land$
Tips:一假则假,两真为真。
真值表:
A | B | A && B |
---|---|---|
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 假 |
晶体管电路:
- 两晶体管串联,当且仅当 2 个晶体管都通电,输出才有电流(True)。
1.3.5 OR 或
数学符号:$\lor$
Tips:一真为真,两假则假。
真值表:
A | B | A || B |
---|---|---|
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
晶体管电路:
- 两晶体管并联,均无电流时晶体管阻塞,输出无电流为 False。
1.3.6 XOR 异或
数学符号:$\oplus$
Tips:不同为真,相同则假。
真值表:
A | B | A XOR B |
---|---|---|
假 | 假 | 假 |
假 | 真 | 真 |
真 | 假 | 真 |
真 | 真 | 假 |
晶体管电路:
1.3.7 逻辑门电路
作为用晶体管搭建的复杂电路的抽象,将逻辑门电路简化,用于构建更大的组件,而不至于太复杂。与、或、非以及异或门电路符号如下: