05. 逻辑门和加法器等原理探究

news2024/11/24 19:30:58

1. 二极管

1.1 什么是二极管

二极管是一种电子元件,它的主要特点是只允许电流在一个方向通过,而另一个方向电流将被阻止。

下面是二极管的示意图:

  • 电流往箭头指向的地方流

1.2 二极管的作用

下面第一个图:给灯泡加上正负电压,电路上通过电流,灯泡会亮。(初中物理知识)。

第二个图:加上一个逆向的二极管,阻断了电流,电流流不过去,灯泡就不亮。

第三个图:加上一个顺向的二极管,电流照常流通,灯泡亮了。

可以通过水流来理解电路,水只能从高处往低处流,水流就是电流,高低差就是电压

2. 理解电路

2.1 小灯泡电路的简化

上述的灯泡的电路可以简化成如下所示,其中灯泡就是R电阻,生活中所有的电器设备都可以称之为电阻R。

2.2 生活中的电流

生活中我们通过插头就把设备连上电了,下面就是模拟把设备连接到电路中的示意图:

根据上图,是不是我们的插头一头要连接到220V上,一头要连接到0V上,但实际上我们插插头的时候随便插。

事实上生活中的用电跟上述还有点不一样,生活中用的是交流电,交流电的特点是电流会不断地在正向和负向之间变化,来回摆动。而直流电的电流方向始终保持一致不变,就像河流一样只朝一个方向流动。

交流电来回变化的频率是50Hz,意味着在每秒钟内,电流或电压的方向和大小会变化50次。

以水流来理解电流:水流从A处和B处之间来回流淌,1秒钟来回流通50次,当然水流速度很慢,但是电流的速度非常快,电流的速度就等于光的速度(30万公里每秒)。所以一趟1/50秒时间内可以有很多电流过。

3. 门

在电路中,门(Gate)是一种逻辑电路元件,用于执行逻辑操作和产生特定的输出信号。其中,与门(AND Gate)、或门(OR Gate)和非门(NOT Gate)是最基本和常见的三种门。

之前我们说过,二进制的0和1就对应集成电路中的高低电压,+5V和0V。

二级制数的操作变化就是通过一系列的包含输入输出的门来操作的。

3.1 与门

与门:当输入都为1时输出才为1,否则输出都是0。

输入是两个,输出是一个。

对应到物理中就是两个输入引脚都为+5V电压时,输出引脚才为+5V,否则输出都是0V。

输入输入输出
000
100
010
111

  • 从这也可以理解为什么叫门,就是电流这个门之后发生了变化。

与门的物理结构

当A和B都是+5V时,电源与A和B之间均无电压差,电路无电流,因而Y输出与电源同为高电平。这就是 “与电路”。

这里的二极管保证了电源的电流可以往A或B方向流,但A或B的电流无法流出去。

用水流和地势高低来理解:电源地势高5米,如果A和B地势都是5米,电源和A、B的地势一样高,则电源的水不会流向A和B,电源水会流向Y;如果A或B有一个地势为0米,则电源水会流向A或B,Y就没有水流过来。

3.2 或门

或门:当输入有一个为1时输出就为1。也就是说只有输入都为0时输出才为0,否则就为1。

输入输入输出
000
101
011
111

或门的物理结构

当A或B有一处有高电压,Y就会有高电压输出。

用水流和地势高低来理解:如果A或B有一个地势为5米,它的水就会流向Y。

3.3 非门

非门:当输入为1时输出就为0,当输入为0时输出就为1。就是相反。

非门就一个输入和一个输出。

输入输出
01
10

  • 注意非门与二极管示意图有点像,注意区分!

3.4 异或门

异或门:输入一个0一个1时输出都为1,输入都是0或者都是1时输出都为0。

输入输入输出
000
101
011
110
  • 两个不一样就为1
  • 两个一样就为0

  • 异或门在输入端比或门多出了一条曲线,除此之外它看上去和或门非常相像。

4. 二进制加法器

4.1 进位和加位

两个1位二进制数相加结果如下:

  • 0加0等于0;
  • 0加1等于1;
  • 1加0等于1;
  • 1加1等于0,进位为1

两个1位二进制数相加的结果可能是一个数位,也有可能是两个数位,我们这里都用两个数位来表示,不足两个的在开头补0,如下就是两个二进制数相加的结果:

输入输入相加结果
0000
1001
0101
1110

将相加的结果加位进位两张表来存储。如下:

输入输入加位
000
101
011
110
输入输入进位
000
100
010
111

我们发现了什么规律,加位表就是异或操作的结果,进位表就是操作的结果。

你发现了什么?

4.2 半加器

两个1位的二进制数相加就可以通过上面讲到的异或门与门这两个具体的电子元件来操作。

如下把一个异或门电子元件和一个与门电子元件连接在一起就可以生成一个用作1位二进制数相加的新的电子元件,我们称为半加器

之所以叫半加器因为它只能算两个1位二进制数相加。

  • 一个异或门和一个与门组成的半加器结果。

通常为了方便我们会将半加器画出如下示意图,简化内部结构。

  • CO是进位输出 carry output的缩写。

4.3 全加器

如下是11001100和10101010两个数相加。我们按照低位在前高位在后排序成列表。

输入A输入B进位输入加位输出进位输出
00000
01010
10010
11001
00110
01101
10101
11111
  • 低位的进位输出是高位的进位输入
  • 两个8位二进制数相加,结果是9位二进制数,多了一个进位。
  • 最后的结果是110010110。

  • 一个全加器需要两个半加器和一个或门,而一个半加器需要一个异或门和一个与门,所以一个全加器需要2个异或门、2个与门、1个或门

要理解它的工作原理,首先从最左边第一个半加器的输入A和输入B开始,其输出是一个加和及相应的进位。这个和必须与前一列的进位输入相加,然后再把它们输入到第二个半加器中。第二个半加器的输出和是最后的结果。两个半加器的进位输出又被输入到一个或门中。你可能会觉得,这里还需要一个半加法器,这当然是可行的。但是如果你了解了所有的可能性之后,你会发现,两个半加法器的进位输出是不会同时为1的。或门在这里已经足够,因为或门除了在输入都为1的时候以外,其他情况下结果和异或门结果相同。

为了避免重复地画上面的那个图,我们用以下形式来替代上图中的一堆符号,它称为全加器

  • CI是进位输入 carry input的缩写。

4.4 8位加法器

我们将8个全加器连接在一起就是一个8位加法器,它可以计算两个8位的二进制数相加了。它的输入是A0 ~ A7 、B0 ~ B7 、CI ,也就是两个8位的二进制数和一个进位输入。

它的输出是 S0 ~ S7、CO。

  • 第1位的进位输出传递给第2位的进位输入,第2位的进位输出传递给第3位的进位输入,以此内推…

下面是是一个简化版的8位二进制加法器示意图。

如下:计算1100110010101010这两个二进制数相加的结果等于110010110

4.5 16位加法器

8位加法器的简化。

将两个8位加法器连在一起就是一个16位加法器。

5. 减法也是用加法

负数在计算机是以补数的形式来存储的。

负数的补数就是它对应的正数取反加1。

如-1,对应的正数是1,转化为二进制就是00000001,取反是11111110,加1就是11111111。

所以-1的补数就是11111111。

那么 1+(-1)假设在8位操作系统中: 00000001 + 11111111

  • 因为操作系统是8位,只能存储8位,所以进位1省略掉。00000001 + 11111111 = 00000000

之所以能用补数表示负数,就是因为计算机的位数是有限制的。现在操作系统最多也就64位。

我们来计算一下 3+(-5)。

3的二进制是00000011

-5对应的正数是00000101,取反是11111010,加1是11111011。-5的补数就是11111011

相加结果是11111110,结果开头是1,说明这是一个负数,是以补数的形式展示。

我们反推它对应的负数是多少,11111110减1是11111101,11111101取反是00000010,结果是2,对应的负数就是-2。

可以通过钟表来理解补数,因为钟表上只有12个小时。

比如现在是9点,我们需要调整到11点。可以往回拨10个小时,或者往前拨2个小时。都可以达到11点钟。

6. 结语

本篇讲了二极管、电路、与或非等逻辑门、二进制加法器等内容,内容很多而且较为难理解,请仔细阅读,不懂的地方请评论提问。

关注微信公众号:“小虎哥的技术博客”,让我们一起成为更优秀的程序员❤️!

文章和代码仓库:

gitee(推荐):https://gitee.com/cunzaizhe/xiaohuge-blog

github:https://github.com/tigerleeli/xiaohuge-blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/970399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pcapng 文件转 pcap 文件

pcap 是早期计算机网络抓包格式,几乎所有抓包工具都支持pcap;pcapng 是下一代抓包格式,支持不同路线以寻求标准化,pcapng格式通过使用标准化块和字段来实现可扩展性需求。 在tcpreplay重放数据包的时候,手里只有pcapng文件&#…

【牛客网题目】合并k个已排序的链表

目录 描述 题目分析 描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0≤n≤5000&#xff0c;每个节点的val满足∣val∣<1000 要求&#xff1a;时间复杂度 O(nlogn) 示例1 输入&#xff1a;[{1,2,3},{4,5,6,7}]返回值…

地质灾害监测方案(地质灾害监测原理与方法)

我国坡地较多,地质灾害时有发生,给人民生命财产安全和经济建设造成严重威胁。采用工业物联网技术进行地质灾害监测,可以实现对山体移动、边坡变形等地质灾害的预警和实时监测,保护人民生命财产安全。现提出如下地质灾害监测方案: 1. 监测场景:针对易发地质灾害的区域,如矿山边坡…

有效的价格管理手段

品牌产品的价格定位是非常严肃的事情&#xff0c;尤其像新品发售期间&#xff0c;价格的波动会对销量影响非常大&#xff0c;所以产品定价的稳定性关系到品牌发展&#xff0c;同时也会影响经销商的销售热情&#xff0c;所以品牌需要对价格进行管理&#xff0c;维持住价格的定价…

分支创建查看切换

1、初始化git目录&#xff0c;创建文件并将其推送到本地库 git init echo "123" > hello.txt git add hello.txt git commit -m "first commit" hello.txt$ git init Initialized empty Git repository in D:/Git/git-demo/.git/ AdministratorDESKT…

elementUI textarea可自适应文本高度的文本域

效果图; 通过设置 autosize 属性可以使得文本域的高度能够根据文本内容自动进行调整&#xff0c;并且 autosize 还可以设定为一个对象&#xff0c;指定最小行数和最大行数。 <el-inputtype"textarea"autosizeplaceholder"请输入内容"v-model"te…

书单文案素材哪里找?怎么做成视频?

在当今信息爆炸的时代&#xff0c;越来越多的人开始关注书单并希望分享自己的阅读经验。但是&#xff0c;很多人可能不知道如何寻找书单文案素材以及如何将其制作成视频。本文将为大家介绍一些寻找书单文案素材和制作书单视频的方法。 寻找书单文案素材 1.书单推荐网站 除了书…

前端如何将后台数组进行等分切割

前端如何切割数组 目标&#xff1a;前端需要做轮播&#xff0c;一屏展示12个&#xff0c;后端返回的数组需要进行切割&#xff0c;将数据以12为一组进行分割 环境&#xff1a;vue3tselement plus 代码如下&#xff1a; function divideArrayIntoEqualParts(array, chunkSiz…

输出归一化位置式PID(COTRUST完整梯形图代码)

SMART PLC单自由度和双自由度位置式PID的完整源代码,请参看下面文章链接: 位置式PID(S7-200SMART 单自由度、双自由度梯形图源代码)_RXXW_Dor的博客-CSDN博客有关位置型PID和增量型PID的更多详细介绍请参看PID专栏的相关文章,链接如下:SMART PLC增量型PID算法和梯形图代码…

pycharm 下jupyter noteobook显示黑白图片不正常

背景现象&#xff1a; 1、显示一张黑白图片&#xff0c;颜色反过来了。 from IPython.display import display source Image.open(examples/images/forest_pruned.bmp) display(source) 2、原因&#xff1a; 是pycharm会在深色皮肤下默认反转jupyter notebook输出图片的颜…

【python爬虫】13.吃什么不会胖(爬虫实操练习)

文章目录 前言项目实操明确目标分析过程代码实现 前言 吃什么不会胖——这是我前段时间在健身时比较关注的话题。 相信很多人&#xff0c;哪怕不健身&#xff0c;也会和我一样注重饮食的健康&#xff0c;在乎自己每天摄入的食物热量。 不过&#xff0c;生活中应该很少有人会…

【Docker】 08-Dockerfile

什么是Dockerfile Dockerfile可以认为是Docker镜像的描述文件&#xff0c;是由一系列命令和参数构成的教程&#xff0c;主要作用是用来构建docker镜像的构建文件。 Dockerfile解析过程 Dockerfile的保留命令 保留字作用FROM当前镜像是基于哪个镜像的 第一个指令必须是FROMMA…

做一个答题小程序需要多少钱

做一个答题小程序需要多少钱呢&#xff1f;相信这是很多想做答题小程序的小伙伴非常关心的一个问题&#xff0c;那么今天我们就来分析一下做一个影响答题小程序价格的主要功能因素。 答题小程序开发成本的高低很大一部分是由具体的功能需求决定的&#xff0c;比如个人答题模式…

rk3399 linux 5.10 usb 2.0设备上电概率性注册失败

多次开关机&#xff0c;发现usb hub和4G都通信失败了&#xff0c;这就有点奇怪了&#xff0c;按理说usb驱动是没啥问题的 先查看usb log rootlinaro-alip:/# dmesg | grep usb [ 1.723797] usbcore: registered new interface driver usbfs [ 1.723828] usbcore: regis…

苹果平板如何录屏?这个方法亲测有效!

“苹果的平板可以录屏吗&#xff0c;买了个平板拿来上网课&#xff0c;但是老师讲课速度太快了&#xff0c;就想说录下来&#xff0c;可是找不到哪里可以录制&#xff0c;有人知道苹果平板如何录屏吗&#xff1f;” 苹果平板作为一款功能强大的设备&#xff0c;不仅适用于日常…

全网最全MySQL锁全面解析

目录 1. 锁的分类 1.1 从操作类型划分&#xff0c;分为读锁和写锁&#xff1b; 1.2 从锁的粒度划分&#xff0c;分为全局锁&#xff0c;表锁&#xff0c;页锁&#xff0c;行锁&#xff1b; 1.3 从锁的态度划分&#xff0c;分为乐观锁和悲观锁&#xff1b; 2. 读锁和写锁 …

说说JavaScript与DOM之间的关系

dom&#xff08;文档对象模型&#xff09;是JavaScript的一个组成部分&#xff0c;它为JavaScript提供处理网页内容的方法和接口&#xff1b;JavaScript对网页进行的所有操作都是通过DOM进行的。 完整的 JavaScript 是由以下三个部分组成&#xff1a; 核心&#xff08;ECMAScri…

elementui el-table在有summary-method时,table数据行将合计行遮挡住了

前端使用框架&#xff1a;elementUI 使用组件&#xff1a;el-table 在表格内添加合计了合计行&#xff0c;根据业务多次调用数据渲染画面后&#xff0c;偶然导致画面变成如下图所示&#xff0c;table的数据行将合计行遮挡住了&#xff0c;且这个现象有时候好用&#xff0c;有…

界面控件DevExpress .NET应用安全 Web API v23.1亮点:支持Swagger模式

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。 DevExpress 今年第一个重要版本v23.1日前已正式发布了&#xff0c;该版本拥有众多新产品和数十…

AI大模型的使用-深入使用LLMChain,给AI连上Google和计算器

今天涉及的内容如下&#xff0c;下面都会使用例子一一讲解使用&#xff0c; 1.1 utilities&#xff1a;langchain的python解析器 1.2 LLMMathChain&#xff1a;可以处理计算的链&#xff0c;内部用python解释器处理 1.3 LLMRequestsChain&#xff1a;通过一个 HTTP 请求来得…