二进制和十进制没有很大的区别,都是用来计数的,但二进制还可以用来做逻辑运算,而逻辑运算才是计算机最擅长做的事情。我们在学校里学习计算机组成原理时,就知道有很多电子元件:与门,或门,非门,异或门等等,这些逻辑门控制高低电平,从而实现逻辑运算。
之前我们讲解了加法器的工作原理,利用加法器可以计算加法,那如何计算减法呢?
是不是需要减法器来计算呢?
不是的,减法运算利用的也是加法器,接下来我们就来说一说减法是如何实现的,比如计算232减154,面临的第一个难点就是借位问题,对我们来说借位问题似乎很简单,但是对于计算机来说,借位问题非常难搞。
文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
鉴于此人们进行了这样的运算,先加上1000,然后减去1000,然后把第一个1000差乘999+1,最后把他们重新组合,这样就不存在借位的问题了,但是他们最后的结果是一样的,因为999是最大的三位数,所以它减去任何三位数都不需要借位。
下一步运算是用结果加被减数,然后加1,最后一步是减去1000。因为我们减去了一个小数,加上了一个大数,所以这个结果肯定大于1000,所以这里也不需要借位,经过这样的运算,我们整个运算过程都不需要用到借位。
然后我们把它转化成二进制,因为计算机最终都是以二进制进行运算的,把这个二进制换算成十进制就是78。需要特别注意的是,这里并不是十进制的999,而是十进制的255,因为对于八位二进制来说,他是最大的,然后加1就是256,对于二进制进行的是256的加减。
接下来的问题是,怎么用加法器实现减法运算,先说第一步它的二进制减法结果,它里面有一个这样的规律,它的结果相当于对减数的每一位取反,所以我们在输入减数的时候,只需要给它加上非门就可以了,为了方便,我们用符号表示,还有就是八位加法器,我们也用符号表示。
非门的作用就是取反,比如我们给他输入0,它就能输出1,给他输入1,它就能输出0,给他加非门的这个操作,本质上是让减数和255相加,下一步就是让这个结果和被减数相加,他的结果这一步利用加法器就可以完成,如果你还不知道加法器的工作原理,可以看一下之前的文章。
然后是加1的操作,这一步最简单,这是它的结果,我们只需要在加法器的第一位给他输入1就可以,最后一步是减去256,它的结果等于十进制的78是正确的。
那怎么在加法器里面计算这一步呢?我们不妨先观察一下它的规律,可以看出再减去256之前,他的前八位就已经是最后的结果了,所以我们只需要计算第九位就可以了,上面这个数的第九位是1,下面的256第九位也是1,它们相减就是零。
所以我们可以在这里加一个异或门,它的作用是当两个输入相同时,他的输出为0,异或门右边的输入是加法器输出的1,左边的输入是我们给他输入的一个1,最后输出的结果就等于0,这一步就相当于减去256的操作,经过这三步简单的操作,就可以在加法器的基础上实现减法了。
然后我们再返回去看一下,第一步是对减数取反,然后加1,这不正是负数在计算机中的表示方法吗?也就是一个数的补码,不知道你对补码还有印象吗?这就是为什么负数要用补码来表示,在我们看来减法就是减法,但是对计算机来说,减法也是加法,他是加上这个数的补码,最后就是我们想要的结果。
加法系的构成也特别简单,在加法器的基础上构建减法运算只需要很少门电路,但是只需要如此少的门电路就能让加法器实现减法运算,这个设计一定是天才才能搞出来的,好了到这里就结束啦,如果你没有看懂,记得收藏然后多看几次哦。
对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就行,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取
好了,这期分享就到这里啦,觉得对屏幕前的你有帮助的麻烦一键三连,点赞收藏加关注哦,有问题的朋友也可以在评论区评论,或者私信我
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.