????????
本集课程的B站链接
目录
????????在计算机的发展历程中,计数进制一直在发生改变。在机械计算机时期(如Leibniz的步进计算机),采用齿轮数为10的齿轮来代表十进制;到后来的电子计算机时期(晶体管计算机),再想使用十进制就有点不太容易了,因为想使用通过晶体管的电流大小来表达10进制实在是太容易被干扰了!状态越多,就会越难以区分信号,假如设备要没电了或者突然受到了什么干扰,都会使最后的输出具有不确定性,科学家们尝试过五进制、三进制,后来才最终选择了二进制。
????????二进制只有“真”或“假”两个值,也可以表示成“1”或“0”。当电路闭合,电流流过的时候,表示“真”;电路断开,没有电流流过的时候表示“假”,这样的方式很难受到外界的干扰,可以让我们的计算机工作的更加稳定!
????????此外,使用二进制的另外一个原因是,有一整套的数学计算的方法,来专门处理“真”或“假”,那就是布尔代数。它是以19世纪的英国数学家?George Boole?的名字来命名的。
????????Boole?一直致力于用一种类似常规代数的计算方法,来处理亚里士多德哲学中的逻辑问题。对比于代数中的加减乘除,布尔代数也有三个基本计算方式,那就是“与”AND,“或”OR,“非”NOT。
????????在了解三种基本门电路之前,我们先大致了解一下晶体管是怎么工作的。晶体管有三个引脚,分别是基极(B-base)、集电极(C-collector)、发射极(E-emitter)。当电流从基极流向发射极时,三极管导通,以便更大的电流可以从集电极流向发射极(有种抛砖引玉的赶脚)。把三极管比作为一个水龙头的话,就是将开关(B)打开,水流就会从水管流出(C → E)。打开这个水龙头的代价大约是0.7V的电压。
????????下面让我们分别来了解一下,并用晶体管制作出这三种基本门电路:
????????非门为单输入单输出逻辑运算,是将输入的布尔值进行取反操作,输入与输出的对应表如下:
输入 | 输出 |
True | False |
False | True |
? ? ? ? 假如将晶体管的集电极连在高电平上,把发射极接地,那么一个非门就做好了!这个非门的输入是基极,输出是集电极。假如输入为0(即基极电压不足以使晶体管导通),那么集电极的电压就为高电平电压,即输出为1;假如输入为1(基极电压使晶体管道通),那么集电极相当于直接连到了地上,为低电压,即输出为0。
????????? ??
????????与门需要两个输入,只有当着两个输入同时为真的时候,输出才为真,只要任意一个输入为假,则输出就为假。
Input 1 | Input 2 | Output |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
????????制造与门电路,需要将两个晶体管串联起来。这样,用两个晶体管的控制电路作为输入,就必须两个输入端都接通,输出电路才有电流流过。
????????或门同样需要两个输入,并且只要任意一个输入为“真”,则输出就为真;只有当两个输入都为“假”的时候,结果为“假”。
Input 1 | Input 2 | Output |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
?????????有了这3种基本门电路,我们可以开始构建更复杂一点的逻辑电路了
?????????若两个输入相异,则输出为真;若两个输入的电平相同,则输出为假。即如果两个输入不同,则异或门输出真。鱼和熊掌不可兼得也。
Input 1 | Input 2 | Output |
True | True | False |
True | False | True |
False | True | True |
False | False | False |
????????利用晶体管来制造“异或”门电路就相当复杂了,还好我们可以用抽象出来的工具“与”、“或”、“非”门来组装它:
????????
????????从现在开始,我们终于可以用电信号来表示我们的数据(真、假)了!
????????本集内容完毕,下集再见!