计算机是怎么进行加法运算的?

在我小时候的印象里,对于计算机的认识就是黑客帝国里面那种充斥0和1的绿色屏幕,后来知道了计算机的一切一切都是基于二进制,那么怎么能从简单的二进制变为现在这些网络世界的,现在我们来一起设计一个二进制的加法器吧

#首先了解基本的逻辑门 简单的只有0和1是组成不了什么东西,记得小学的科学课上让我们动手去用开关连接灯泡吗?

这些就是计算的重要组成部分----逻辑门。分别对应非、或、与。

将与或与非门组成会产生或非门和与非门

#分析二进制的加法 为什么计算机不用我们熟知的十进制运算而是用二进制,因为十进制需要记住10以内的加法表。但是二进制你只需要知道

00 01
00 00 01
01 01 10

其中01和01相加会产生一个进位,所以我们设计加法器的时候需要分开计算,加和计算和进位计算。 进位计算是计算俩数的进位结果

进位 0 1
0 0 0
1 0 1

回想一下之前的逻辑门,是不是像与门,对啦!加法器就是通过与门来算俩数的进位

加和计算是计算俩数相加的结果

加和 0 1
0 0 1
1 1 0

现在再次回想一下之前的逻辑门,发现没一个是跟这个表相同,不过再观察一下你会发现,那与非门和或门的重叠处就是跟这个表一毛一样

与非门 0 1
0 1 1
1 1 0
或门 0 1
0 0 1
1 1 1

所以我们加工一下

把或门和与非门的结果再次用与们计算,结果就跟加和的输出一样了 这种设计又被称为----异或门 现在一切就绪,我们开始设计加法器吧!

###加法器设计 现在有了加和器和进位器就可以设计加法器了,把想要加的俩个数同时经过或门和异或门

这样就会产生一个加和输出和进位输出。这样就完成了吗?不,只能算完成一半,这个能计算俩个数相加,但是有时候计算需要加算上一次的进位,所以应该有3个数字参与运算,所以将上面这种加法器称为半加器,简化为下图

###全加器 全加器是由半加器与与门组合,可以在计算俩个数的基础上再计算与上一位运算所产生的进位

这样就构成了一次完整的加法,全加器简化为下图

#拼装 现在在把全加器拼装在一起,每一次的进位结果链接到下一次的进位,最后一位的进位结果连接上灯泡,再把每一位的加和结果连接上灯泡,第一位的进位输入用地线连接,所以第一位的进位为0

至此就完成了一个八位的加法器

转载于:https://juejin.im/post/5a771415f265da4e8700a45b

你可能感兴趣的:(计算机是怎么进行加法运算的?)