在我小时候的印象里,对于计算机的认识就是黑客帝国里面那种充斥0和1的绿色屏幕,后来知道了计算机的一切一切都是基于二进制,那么怎么能从简单的二进制变为现在这些网络世界的,现在我们来一起设计一个二进制的加法器吧
简单的只有0和1是组成不了什么东西,记得小学的科学课上让我们动手去用开关连接灯泡吗?
这些就是计算的重要组成部分----逻辑门。分别对应非、或、与。
将与或与非门组成会产生或非门和与非门
为什么计算机不用我们熟知的十进制运算而是用二进制,因为十进制需要记住10以内的加法表。但是二进制你只需要知道
其中01和01相加会产生一个进位,所以我们设计加法器的时候需要分开计算,加和计算和进位计算。
进位计算是计算俩数的进位结果
回想一下之前的逻辑门,是不是像与门,对啦!加法器就是通过与门来算俩数的进位
加和计算是计算俩数相加的结果
现在再次回想一下之前的逻辑门,发现没一个是跟这个表相同,不过再观察一下你会发现,那与非门和或门的重叠处就是跟这个表一毛一样
所以我们加工一下
把或门和与非门的结果再次用与们计算,结果就跟加和的输出一样了
这种设计又被称为----异或门
现在有了加和器和进位器就可以设计加法器了,把想要加的俩个数同时经过或门和异或门
这样就会产生一个加和输出和进位输出。这样就完成了吗?不,只能算完成一半,这个能计算俩个数相加,但是有时候计算需要加算上一次的进位,所以应该有3个数字参与运算,所以将上面这种加法器称为半加器,简化为下图
全加器是由半加器与与门组合,可以在计算俩个数的基础上再计算与上一位运算所产生的进位
这样就构成了一次完整的加法,全加器简化为下图
现在在把全加器拼装在一起,每一次的进位结果链接到下一次的进位,最后一位的进位结果连接上灯泡,再把每一位的加和结果连接上灯泡,第一位的进位输入用地线连接,所以第一位的进位为0
至此就完成了一个八位的加法器
计算机中,加法器的电路,如下图中框内所示。
加法器,可以完成:A + B。
增加了求补电路后,可由 B 求出-B,这就可以做 A-B了。
例如,有两个无符号数相减:13-5 = 8。
假设字长为四位二进制数,计算机将按如下操作。
两个加数的二进制为:A = 13=1101、 B = 5=0101。
对 B 求补,即可得到:-B = -5=1011。
然后,就相加吧:1101 + 1011 = 进 1、1000。
忽略进位,四位的结果就是:1000 = 8。