计算机为什么使用二进制
上一章我们讲到了,晶体管很好的控制“通”和“断”两种状态,事实上,如果从电压上来看可以有很多种不同的状态,但是由于磁场,电流变化等影响, 太多级别的状态不精准,而只有开关两种状态信号的话,我们能够非常好的区分开他们
而计算机使用二进制还有一个很重要的原因是,有一个专门处理“真”与“假”的数学分支,就是布尔逻辑,由英国数学家乔治布尔提出。
布尔代数
在布尔代数中,有三个基本操作NOT,AND和OR
NOT
故名思意就是将真假取反,我们可以简单的用一个表描述输入输出
INPUT | OUPUT |
TRUE | FALSE |
FALSE | TRUE |
而这个逻辑可以非常简单的用晶体管来实现,注意观察下图
下方是地线,如果input通电,上方电流就会接地,output就没有输出了,反之上面电流能从output输出,这就是一个简单的“非门”
AND
与门,是一种且逻辑,只有两个条件都达成,才能输出,还是按照一个输入输出表来描述
INPUT A | INPUT B | OUTPUT |
TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE |
FALSE | TRUE | FALSE |
FALSE | FALSE | FALSE |
它也可以用晶体管来实现,可以看到以下结构,任意A或者B通电,上面电流都不能到OUTPUT输出,只有A和B都通电,上方电流才能通过
OR
或门,两个条件任意一个达成就这一正常输出,还是以一个表格来表示
INPUT A | INPUT B | OUTPUT |
TRUE | TRUE | TRUE |
TRUE | FALSE | TRUE |
FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE |
使用晶体管的话,如下实现,只有在A和B都是OFF的情况下,才输出OFF,只有AB任意一个ON,输出就可以是ON
抽象
抽象是各个学科当中都使用的一种方法,忽略底层实现,而用一个抽象的概念代表某种逻辑。
后面我们会使用三个符合分别指代非门,与门和或门
接下来就举一个例子
XOR
异或门,它是或门的一个变种,也可以用一个输出输出表来展示,它表示的是只有输入AB信号不一致时,输出TRUE;如果输入AB的信号一致,则输出FALSE
INPUT A | INPUT B | OUTPUT |
TRUE | TRUE | FALSE |
TRUE | FALSE | TRUE |
FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE |
用晶体管来完成这个非常复杂,而如果我们用抽象的逻辑门来表示就非常简单了
可以看到用了4个逻辑门来达成了上表异或门的功能
如果此时每次使用异或都要画出来四个逻辑门还是非常复杂,此时可以再次使用抽象的方法将四个逻辑门抽象成一个异或门
上一章:
晶体管 - 计算机组成原理(二)https://blog.csdn.net/pietian1157/article/details/138000492?spm=1001.2014.3001.5502下一章: