一:计算机中加法的电路实现
目录
一. 逻辑门:一些简单的电学知识
1.非门(not gate)
2.与门
3.与非门
4.或门
5.或非门
6.异或门(Exklusive or,XOR)
二、二进制加法
1、加法位
2、进位
主要转载自:https://blog.csdn.net/weixin_34417814/article/details/88960830
另外还参考了https://zhuanlan.zhihu.com/p/338814035
1937年麻省理工学院研究生克劳德香农发表了他的一篇划时代的论文《对继电器和开关电路中的符号分析》,首次向人们展示了如何使用二进制开关来实现数学运算。
为了方便没有相关背景的读者阅读本文,我首先介绍一些逻辑电路的基本知识,有基础的朋友们可以直接跳过。
二进制:
我们日常生活中最常用的是十进制,也就是逢10进1,所有的数字都可以由0到9来构成,例如10是由1和0组成的。类比想一下,二进制就是逢2进1,也就是所有数字都是由0和1构成的,0在二进制中是0,1在二进制中还是1,但是2就变成了10(因为出现了2所以需要0向左进一位,类似在十进制中出现了10所以在0右边进一位)。为了方便理解,我们用四位数字来表示二进制数:
十进制数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
二进制数 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 |
十进制 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
二进制 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
从表格中可以看出四位二进制数能表示十进制中0到15一共16个数。
一. 逻辑门:一些简单的电学知识
在逻辑电路中我们只有两个状态,用1来表示高电平状态,0来表示低电平状态(高低电压具体数值这里并没有明确的定义,相对一高一低即可)
要了解加法是怎么实现的,首先我们来看一些电学中的知识。毕竟CPU本质上只是一个庞大的电路实现,虽然CPU完整电路非常复杂,但其却是有几个非常简单和最基础的电学原件组成的(真的非常简单!!!)。
1.非门(not gate)
顾名思义,该逻辑门的作用是将输入的电平反转,如果输入的是0输出的就是1,输入的是1输出的就是0.
A | Z |
1 | 0 |
0 | 1 |
A为输入电平,Z为输出电平。电路中用以下符号来表示
2. 与门
与门只有当两个输入都为1时才输出1,其输入与输出如下:
输入 | 1 | 0 |
---|---|---|
1 | 1 | 0 |
0 | 0 | 0 |
3.与非门
输出和与门完全相反,其输入输出如下:
输入 | 1 | 0 |
---|---|---|
1 | 0 | 1 |
0 | 1 | 1 |
我们只需知道这三个基本的电路就,我们就可以用这个三门来搭建一个加法器。
4.或门
或门只要有一个输入为1时输出就为1,其输入输出如下:
输入 | 1 | 0 |
---|---|---|
1 | 1 | 1 |
0 | 1 | 0 |
5.或非门
类比与非门,即在或门后面串联一个非门。
A | B | Z |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
6. 异或门(Exklusive or,XOR)
异或门定义为如果输入电压都相同,则输出0,如果不同,则输出1.
异或门又叫半加器,即不产生进位(carry位)的加法,为什么这么说,我们观察表格:
A | B | Z |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
二、二进制加法
现在我们有两二级制数A和B,值分别为A=10010001,B=11010011,我们先人工来算一下他的和:
我们在人工进行计算时从右往左依次将后两位进行相加,如果有进位则进行进位相加。
其实计算机在实现二进制加法时也是这样逐位相加的,有进位则进位。
我们先来看一下1位二进制数加法表:
+ | 0 | 1 |
---|---|---|
0 | 00 | 01 |
1 | 01 | 10 |
仔细看这个一位加法表,在进行一位的加法时只有当两个加数都为1时才会发生进位。我们不妨把结果分为加法位和进位,我们在分别来看一下加法位和进位的情况:
1、加法位
+ | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0 |
仔细观察这个加法位表,如果不看右下角的话,那不就是或门的输出吗。如果不看左上角的话,那不就是与非门的输出吗。
这样我们想要的就很明了了,就是将或门和与非门的输出结合起来。我先看一下相同输入的情况下或门和与非门的输出:
电路连接:
输入输出结果表:
A | B | 与非门输出 | 或门输出 | 想要的结构 |
---|---|---|---|---|
0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 0 |
仔细观察与非门、或门的输出和想要的结果,是不是非常眼熟,当两个门的输出同时为1时就是我们想要的1其他为0,这不就是与门吗。
所有我们只需将与非门和或门的输出作为一个与门的输入,就可以得到加法位的结果,如下:
其实这个电路有个专门的名称叫做异或门,只有单两个输入都不相同时输出才为1,符号如下:
实现了加法位我们再来看一下进位
2、进位
一位加法的的进位结果如下:
+ | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
看这个表是不是更加眼熟,这不就是我们的与门吗,所有我们只需一个或门就可以实现进位。
现在加法位和进位我们都已经实现了,接下来只需要将二者连起来就实现了一个一位的加法器了,如下:
为了避免每次都要画出与门和异或门,这个加法的实现我们用一个特殊的符号来表示,如下:
我们成其为半加器,因为他只能将两个一位的二进制数相加,但我们做加法时往往都有进位相加的情况。
为了实现进位相加我们可以利用两个半加器和一个或门,按如下电路图进行连接:
首先将输入的A和B进行相加得到的结果在和进位相加得到加法位的结果,对于进位毕竟三个一位的二进制数相加能得到的最大结果为11(1+1+1)进位最多发生一次,所以使用或门输出进位。如果没有进位那进位输入为0。
其实这个电路图也有一个专门的符号,让我们免于每次都画一个完成的全加器。
现在我们已经实现的进位的加法了,计算机加法的实现页差不多了,现在只剩下一个问题,如何进行多位的加法那?比如8位的加法,这个也非常简单只需将一个全加器的进位输出作为下一个全加器的进位输入来扩展。
8为的加法器实现如下图:
一般使用符号如下:
到这加法的实现就结束完了。
拓展:
半导体怎么实现逻辑门的呢?(低电平输入、高电平输入、低电平输出、高电平输出)
半导体:导电能力介于导体和半导体之间的物质叫半导体。例如硅。
通过控制导电能力来实现电平输入的高低——半导体具有热敏特性和光敏特性。半导体的热敏特性是,当半导体的温度稍有升髙时,半导体的导电能力就显著增强。半导体光敏特性是:当半导体受到光的照射时,半导体的导电能力就显著增强。半导体更为突出的一个特性是:在纯净的半导体中,掺入微量的杂质,半导体的导电能力会大大增强。
通过在硅中掺杂别的元素实现逻辑门的逻辑,了解即可。
一:计算机中加法的电路实现相关推荐
- 计算机加法的电路原理及proteus仿真
最近在休假中,太宅了,也没打算到处去玩.放空脑袋,读读写写,聊以自娱. 我们知道,计算机的功能,都是通过计算来完成的,而这个计算是怎样完成的呢?答案是:电路. 在前面的文章中,我们深入探讨了编码的本质 ...
- 用加法器构造能够实现连续加法的电路
文章目录 1 构造实现连续加法的电路 1.1 构造实现连续加法的电路 1.2 对连续加法的电路进行优化 1.3 解决先后问题 有了前面搭建得各分立元器件,就可以开始组装我们自己的CPU了! 1 构造实 ...
- 计算机中整数的表示和整数运算
目录 1. 计算机中整数的表示 2. 计算机中整数的四则运算 1. 计算机中整数的表示 计算机只认识0和1,因此任何数都需要表示成二进制的形式.计算机系统规定,最高位用于表示整数的符号位,0表示正数, ...
- Knowledge Point 20180305 数据在计算机中的表示
计算机发明的初衷就是用于帮助我们加工和处理数据,虽然时至今天计算机看起来无所不能,但它根本上还是在做数据的加工和处理,数据的机器层次表示将直接影响到计算机的结构和性能. 在计算机中,采用数字化方式来表 ...
- 物理学在计算机领域的应用,物理学在计算机中的应用.doc
物理学在计算机中的应用 安阳工学院 <大学普通物理学>论文 普通物理学在计算机中的应用 学院:计算机科学与信息工程学院 专业:11级计算机科学与技术(嵌入方向) 学号:2011030100 ...
- 除了计算机中的二进制还有哪些进位制,除了十进位制还有什么进位制
进位制 基本概念 数制是人们利用符号进行计数的科学方法.数制有很多种,在计算机中常用的数制有:十进制,二进制和十六进制. 进位制 数制分类 1. 十进制数 人们通常使用的是十进制.它的特点有两个:有0 ...
- 计算机中算术逻辑单元负责,算术逻辑单元
算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU. 简介 算术逻辑单元(Arithmetic&logical Uni ...
- 微型计算机一般按字长进行分类,关于计算机中:字,字节,字长,位的关系
关于计算机中:字,字节,字长,位的关系 位:二进制位(bit)是计算机存储信息的基本单位,代表1个二进制数位,其值为0或1.字节:8个连续的二进制位为一个字节,可以存放 微型计算机 D 29.计算机一 ...
- 关于计算机中 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- 整数、浮点数在计算机中的存储,-128二进制怎么表示,
目录 1 计算机底层存储数据的基本原理 2 整数的存储 2.1 整数的基本概念 2.2 整数的编码方式 -128的二进制表示 3浮点数存储 3.1 二进制十进制间小数怎么转换 1 计算机底层存储数据的 ...
最新文章
- Python 包管理工具解惑
- 检查传递给Bash脚本的参数数量
- mybatis框架--学习笔记(下)
- 06链队列_LinkQueue--(栈与队列)
- Mobile Lua 6.5 发布,MoSync 的 Lua 移植版本
- 从右边开始放_幸福的生活,从入住新房开始,效果很漂亮,忍不住给大家晒晒全屋...
- android 线程之AsyncTask
- java: Iterator的使用
- include查找文件路径
- 云计算之路-试用Azure:搭建自己的内网DNS服务器
- 小米平板5 pro 解锁 Bootloader
- fedora14命令行界面自动root权限登录
- 【参考文献】平滑肌细胞生长培养
- SDCC讲师专访:创新工场蔡学镛为何看好Dart
- 任何矩阵都能变换成梯形阵的证明
- Matlab:完美涡旋光束
- H3C S5024P智能千兆交换机
- 期货模拟盘有效果吗?
- MySQL中如何为查询的数据添加自增序号、顺序呢
- Linux安装maven