计科03:[布尔代数和逻辑门]

布尔逻辑和逻辑门

视频

1. 什么是二进制

计算机是最早的机电设备,一般用十进制计数,比如用齿轮数来代表十进制,再到晶体管计算机。

只用 开/关两种状态来代表信息,这叫二进制。如果只需表示true和false,两个值就够了。电路闭合,电流流过,代表“真”;电路断开,无电流通过,代表“假”。二进制也可以写成1和0而不是true和false,只是不同的表达方式罢了。

晶体管的确可以不只是 开/关,还可以让不同大小的电流通过。一些早期电子计算机是三进制的,有 3 种状态,甚至五进制,5 种状态;问题是,状态越多,越难区分信号。如果手机快没电了或者附近有电噪音,比如有人在用微波炉,信号可能会混在一起,而每秒百万次变化的晶体管会让这个问题变得更糟。所以我们把两种信号尽可能分开,只用”开”和”关”两种状态,可以尽可能减少这类问题。

1.1 布尔代数

计算机用二进制的另一个原因是有一整个数学分支存在,专门处理“真”和“假”,它已经解决了所有法则和运算,它叫作“布尔代数”

乔治·布尔(George Boole)是布尔二字的由来,他是一位19 世纪自学成才的英国数学家。他感兴趣用数学式子扩展亚里士多德基于哲学的逻辑方法,布尔用逻辑方程系统而正式的证明真理(truth)。他在1847 年的第一本书”逻辑的数学分析”中介绍过:在”常规“的代数里,是数字,可以进行加法或乘法之类的操作;但在布尔代数中,变量的值是 true 和 false,能进行逻辑操作。

2. 三个基本操作:NOT,AND,OR

布尔代数中三个基本操作:NOT, AND 和 OR,这些操作都非常有用。

2.1 NOT

NOT操作把布尔值反转,把true进行NOT就会变成false,反之亦然。

根据NOT操作的输入和输出,做出如下表

NOT操作输入输出表

使用晶体管可以轻松实现这个逻辑。晶体管只是电控制的开关,有3根线:2根电极和一根控制线。控制线通电时,电流就可以从一个电极流到另一个电极;就像水龙头一样:打开水龙头,水流出,关掉水龙头,就没水了。

可以把控制线,当做输入,底部的电极,当做输出,所以一个晶体管,就有一个输入和一个输出。当打开输入时,输出也会打开,因为电流可以通过;如果关闭输入,输出也会关闭,因为电流无法通过。用布尔代数来说,输入为真,输出为真;输入为假,输出为假。这个电路没什么意思,因为它没有做什么事情。

但稍加修改,即可实现NOT,只要把输出放到上面即可。如下图示:

NOT_Gate

  • 当打开输入on,电流可以流过然后“接地”,输出就没有电流了,所以输出是off。
  • 当输入是off,电流没法接地,就流过了输出,所以输出是on。

接地:大地是一个电阻非常低、电容量非常大的物体,拥有吸收无限电荷的能力,而且在吸收大量电荷后仍能保持电位不变 ,故接地后设备其他线路就不会有电流输出。

如上图示叫非门(NOT gate),之所以叫门,是因为它能控制电流的路径。

2.2 AND

AND操作有两个输入,1个输出,如下表所示:

输入 输入 输出
0 0 0
0 1 0
1 0 0
1 1 1
  • 简单记忆:遇假即假,全真即真。

为了实现与门(AND gate),需要两个晶体管连在一起,如下图示:

AND_Gate.png

这样有2个输入和1个输出,如果只打开A,不打开B,电流无法流到output,所以输出是false;如果只打开B,不开A,也一样,电流无法流到output;只有A和B都打开了,output才有电流。

2.3 OR

OR操作也有两个输入,1个输出,其中2个输入里1个是true,输出就是true。如下表所示:

输入 输入 输出
0 0 0
0 1 1
1 0 1
1 1 1
  • 遇真即真,全假即假。

为了实现或门(OR gate),除了晶体管还要额外的线,不是串联起来,而是并联。如下图示:

OR_Gate

左边这条线表示电流输入,如果A和B都是OFF,电流就无法通过任意一条线流到输出,所以输出是OFF;如果只打开A,电流可以流过,输出ON;如果只打开B,电流也可以通过,输出ON;只要A或者B是ON,输出就是ON,如果AB都是ON,那么输出自然是ON。

3. XOR异或

异或(XOR),输入相同时输出false,不同才输出true。如下XOR表:

XOR_table

如果两个输入都是true,或者都是false,那么XOR输出false;如果一个输入为true,另一个为false,那么XOR输出才会是true。

  • 相同即假,不同才真。

用晶体管实现异或门(XOR gate),需使用到前面提到的三种门来做异或门。墙裂推荐配合视频学习理解(时间07:38)。

XOR_gate

如上图A和B输入两个true,到下方的OR门,输出依然是true,上方第一个AND门输入两个true,输出也是true,然后电流到NOT门,反转电流高低电平,true变成了false,到最后一个AND门就是输入一个false一个true,输出就是false;如此便满足XOR门第一个条件,输入两个true,输出false,以此类推。


 上一篇
计科04:[二进制] 计科04:[二进制]
二进制视频 1. 二进制原理逻辑门可以判断布尔语句,布尔代数只有两个值:True和False,但如果只有两个值,我们该如何表达更多东西?上文提到,1个二进制可以代表1个数,我们可以把真和假,当做1和0,如果想表示更多东西,加位数就行了。
下一篇 
计科02:[电子计算机] 计科02:[电子计算机]
电子计算机视频 1. 计算机的发展20世纪初,早期的计算设备都针对特定用途,比如 制表机,大大推进了政府和企业,它们帮助甚至代替了人工,然而人类社会的规模在以前所未有的速度增长。 20世纪上半叶,世界人口几乎翻倍。一战动员7千万人,二战1
  目录