分享

对于计算机来说无论是百万还是上亿的数字运算都能瞬间出结果

 山峰云绕 2022-06-05 发布于贵州

https://m.toutiao.com/is/Y1t5Cc7/?=计算机到底是如何计算加法的 


     (与半加器相比全加器仅仅多了一个进位输入但就是多出来的这个功能可以让全加器串联起来进行多位二进制数的运算)



对于计算机来说,无论是百万还是上亿的数字运算都能瞬间出结果,那计算机到底是如何做到这一点呢?这就不得不提构成计算机的核心逻辑单元加法器。

因为加法计算是计算机唯一要做的工作,减法、乘法和除法都是以加法位基础的,计算机在进行运算时,会把我们输入的十进制数转化为二进制数,比如我们输入十进制13,就是二进制的1101,第一位1就是1,第二位0代表0,第三位1代表4,第四为1代表8,把这些二进制加起来就是十进制的13。

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

二进制加法比十进制加法要简单的多,只需要学会这四个运算就可以了,前三个很容易理解,但是1+1怎么算呢?按照十进制的思维,这里应该等于2,但这是二进制里面是不可能出现2的,只能是0和1,所以需要逢二进一,最后的结果是10,这个0就是0,1代表2,加起来也是2。

为了统一,我们用两位二进制表示结果,用加法表展示这样的,其中第一位是加法位,第二位是进位位,接下来我们就来说一说计算机是如何计算加法的,先说这个加法位,它的规律是,只有两个数不相同时,他的结果为1,如果两个数相同,它的结果为0,这不正是数字电路异或门的输出结果吗?

当我们输入两个高或者低电平时,他的输出为低电平,而当我们输入一高一低时,他输出高电平,如果用低电平代表0,高电平代表1,异或门,正好可以表示加法位的结果,再说进位位,它的规律是,只有输入同时为1时,他的输出才为1,这正好对应的是与门。

与门是只有同时输入高电平时,他的输出才会高电平,与门可以表示进位的结果,把它们组合在一起,就能组成一个最简单的加法器,它能计算两个二进制数相加,其中异或门出出的是加和输出,与门输出的是进位输出。

用电路符号表示是这样的,它是半加器,因为他只能计算两个数相加,可以把两个半加器组合在一起,然后再加一个或门,就能构成全加器,只要有一个输入为高电平,我们就能输出高电平,与半加器相比,全加器仅仅多了一个进位输入,但就是多出来的这个功能可以让全加器串联起来进行多位二进制数的运算。

当进位输入为零时,这个全加器输出结果和半加器是一样的,比如,当我们给AB同时输入1时,它的运算过程是这样的,加和输出是0,进位输出是一,结果和半加器是一样的,再比如,当进位输入为1时,我们还给AB输入1,这时结果应该是十进制的3。

那我们先来看看它的运算过程,输出了两个1,加和输出的1代表2,而进位输出的1代表2,加起来正好是3。

这是全加器所有可以出现的情况,大家可以逐个验证,这是全加器的电路符号,然后我们把八个全加器串联在一起,让前一个全加器的进位输出连接到后一个全加器的进位输入,这样就能进行两个八位二进制数的运算了,需要注意的是,第一个全加器的进位输入一定要给他0,因为它前面没有进位输出。

我们可以试试两个最大的八位二进制相加,把它换算成十进制是255,相加的结果是510,为了验证结果,我们让这八个全加器来计算一下这个问题,首先给他们输入都为1,先说第一个全加器,它的定位输入为0,也就是只有AB输入1,所以第一个全加器加和输出为0,进位输出为1。

然后对于第二个全加器来说,三个输入都是1,所以它的两个输出也都是1,第三个结果也是一样的,一直到最后输出的结果全部都是1,只有第一个是0,我们把这个数换算成十进制,也就是510,与我们上面预期的一致。

这个八位加法器只能计算255以内的加法,如果是16个全加器串联起来,就能计算65535以内的加法,而当32个全加器串联起来,他就能计算40多亿以内的加法,40多亿靠人计算显然是很费时间的,但是32个全加器瞬间就能搞定,因为给他内部的晶体管一通电就能输出结果,到这里就结束啦,如果你喜欢别忘了帮我点个赞。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多