概述
计算机最早的是机电设备,一般使用十进制计数,比如用齿轮数来代表十进制。但是其实只用开/关两种状态已经足够表示信息了,将其称为二进制(Binary)。
在计算机中,当电流流过时,为闭合状态,表示true(1),当没有电流流过时,为断开状态,表示false(0)。但是其实晶体管可以不只是开/关状态,还可以让不同大小的电流通过,一些早期电子计算机,通过对不同电流大小进行划分,可以使用三进制、五进制等等。但问题是,状态越多就越难区分信号,如果存在电噪音,可能就会使状态十分混乱。所以为了让信号更加清晰,可以只使用“开”和“关”两种状态。
另一个使用二进制的原因是,有一整个数学分支专门处理“真”和“假”,它已解决了所有法则和运算,即布尔代数(Boolean Algebra)。
在布尔代数中,变量的值是true和false,能够对其进行逻辑操作。布尔代数中有三个基本操作:NOT、AND和OR。
NOT操作:把布尔值进行翻转,所以NOT操作的真值表为
使用晶体管实现门控时,可以将控制线作为输入,将底部的电极当做输出,而上端电极始终保持高电平状态。这样当输入开启时,就会使得两个电极接通,使得输出也会开启;如果输入关闭时,两个电极是断开状态,就会使得输出还是保持关闭状态。
所以用布尔术语来说,一个单独晶体管的真值表为
对其修改就能使用晶体管实现NOT操作
上方电极接通电源,下方电极接地。当输入开启时,两个电极接通,所有电流都会流向接地,所以使得输出还是关闭状态;当输入关闭时,两个电极还是断开状态,所有电流就会流向输出,使得输出为开启状态。由此就通过晶体管实现了NOT GATE。
AND操作:只有当两个输入都是true时,输出才是true,否则输出都是false。
这里需要使用两个晶体管来实现AND GATE
下方两个电极分别为两个输入,左侧电极接通电源,右侧电极为输出。当两个输入都开启时,电源和输出就会接通,使得输出开启;当任意输入关闭时,电源就不会和输出接通,使得输出保持关闭。
OR操作:当两个输入都为false,输出才为false,否则输出为true。
同样使用两个晶体管实现OR GATE
左侧电极为电源,下方两个电极分别表示两个输入,右侧电极为输出。只要任意一个输入开启,就能使得电源和输出电极接通,使得输出开启;当两个输入都关闭时,就使得电源和输出电极保持断开状态,使得输出保持关闭。
由此通过上方的三个组件(NOT门、AND门和OR门)可以构建出更加复杂的组件。另一个常见的布尔操作叫做异或操作。
异或操作(XOR):当两个输入相同时,输出false,当两个输入不同时,输出true。
XOR操作和OR操作唯一的不同就只有当两个输入都为true时,XOR输出false,而OR输出true。通过对AND操作真值表取反,再和OR操作真值表进行对比,可以发现,第二三行都为true,而第一四行结果不同,因此只要在这两个结果后面加个AND就能得到XOR的真值表。
所以我们一共构建了AND门、OR门、NOT门和XOR门,后面只需要在这些基础上构建更复杂的系统就行了。
最后
以上就是热情大门为你收集整理的proteus三输入与门_[读书笔记]《计算机科学速成课》——3 布尔逻辑和逻辑门的全部内容,希望文章能够帮你解决proteus三输入与门_[读书笔记]《计算机科学速成课》——3 布尔逻辑和逻辑门所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复