布尔逻辑和逻辑门
二进制、布尔逻辑
- 为什么要用二进制
晶体管计算机,只用开/关两种状态即可代表信息,这叫二进制。意思是“用两种状态表示”,两种状态分别为true和false,即真和假,也可写成1和0。
电路闭合,电流流过,代表“真”;
电路断开,无电流流过,代表“假”;
晶体管可以不只是开/关,还可以让不同大小的电流通过。
一些早期电子计算机是三进制的,有3种状态,也有五进制的,5种状态。问题是,状态越多,越难区分信号是哪种状态。如果手机快没电了或者附近有电噪音,信号可能会混在一起,而每秒百万次变化的晶体管会让这个问题变得更糟。
所以我们把两种信号尽可能分开,只用“开”和“关”两种状态,可以尽可能减少这类问题。
还有一个主要原因是,有一整个数学分支存在,专门处理“真”和“假”,它已经解决了所有法则和运算,叫“布尔代数”。
三个基本操作not,and,or
布尔代数里的三个基本操作。
1.not操作:把布尔值反转,把true进行not就会变成false,反之亦然。
图中,左边是输入,上面是电流流过,上面的横线是输出,下面是接地的线。
当输入打开时,电流可以流过中间,电路接地,输出值为0
当输入关闭时,电流不可以流过中间,输出值为1
not门的画法:
2.and操作
两个输入,输入值都为1时,输出值才为1。
and门的画法:
3.or操作
两个输入,输入值不全为0时,输入值就为1。
or门的画法:
oxr异或
两个输入,两个输入值不同的话,输出值为1。
oxr门画法: