分享

让我们揭开计算机运算的神秘面纱,二进制运算的秘密

 书山居士 2019-08-12

让我们揭开计算机运算的神秘面纱,二进制运算的秘密

娃娃问我“粑粑,计算机怎么这么厉害,它是怎么知道1+1=2的呀,它也有大脑吗?”我微微一笑,回答道“是啊,计算机有CPU处理器,它专门负责电脑的计算工作呀。”娃娃似懂非懂的点了点头,若有所思的走开了。

是啊,我的回答并没有错,可是刨根问底,CPU又是怎么工作的呢?它到底是怎么计算1+1的呢,回想起当年学习的数字电路知识,我想有必要来揭开这层神秘的面纱,为大家科普一下计算机的计算原理,这个一定要从二进制计算说起。

什么是二进制

什么是二进制呢?先得来回顾下我们都已经很熟悉的十进制,十进制数位一共由0-9十个数字来表示,它做加法的原理是数位相加,逢十进一,比如7+8=15,“15”中的“1”就是满10进位所得。我们将这种思维模式衍生到二进制再来看,首先二进制只有两个数字0和1,如果要表示2以上的数字,则需要用更多位数的0、1数来表示。参考下图。二进制它的加法也是数位相加,可是它没有2以上的数字,所以一旦加法的结果超过2,就要进位,比如1+1就等于10了(0001+0001=0010)。下图是十进制数字0-9对应的二进制的表示,其中的关键点就是要记住逢二进一。

让我们揭开计算机运算的神秘面纱,二进制运算的秘密

十进制数字0-9的二进制对应表

对于二进制运算的理解,是理解计算机运算原理的关键。但是聪明的你肯定会问,既然我们平时都已经习惯了十进制运算了,为什么计算机不能采用十进制运算,一定要用二进制呢?这个问题主要是由于计算机的硬件实现所决定的。

开关电路

记得在介绍计算机历史的时候曾今提过,组成早期计算机的基本元件是一种叫晶体管的电子元器件。这种器件有个特性,当在一个端口输入高电压或者低电压的时候,它的输出端也只有高电压或者低电压,这其中的关键点是只有高和低两种状态,没有第三种状态,这两种状态也叫开关状态。聪明的朋友可能已经猜到,这好像和二进制只有0和1两个数字很相似啊,说的没错,计算机就是由这些晶体管组成,它们只有开关两种状态,那使用只有两个数字0和1的二进制来做运算就是顺理成章的事情了。

让我们揭开计算机运算的神秘面纱,二进制运算的秘密

晶体管

顺便提一下,我们平时了解的CPU,其实就是内部集成了上百万甚至千万的这种晶体管,然后通过各种晶体管组合控制输入输出的开关状态而去进行各种运算。

加法器

加法器是由晶体管组成的加法运算单元,它分为半加器和全加器,其中的区别就是半加器是不带进位的,全加器带有进位。我们先来看看1位全加器的原理:

让我们揭开计算机运算的神秘面纱,二进制运算的秘密

见上图,A、B代表输入二进制位,S代表输出,C代表进位。中间的模块可以认为是由一些晶体管组成的电路(也叫门电路)。这个电路的运算结果可以由下表来表示,至此,计算机就完成了1位二进制的计算了。

让我们揭开计算机运算的神秘面纱,二进制运算的秘密

那如果多位运算呢,很简单,只要将1位的全加器串联起来就可以了,同时将低位的进位作为高位的输入,风格是这样的:

让我们揭开计算机运算的神秘面纱,二进制运算的秘密

一般8个全加器可以组成一个8位二进制运算器,这对于计算机来说叫一个字节Byte,是计算机的最小运算单元。

计算机所能执行的任何程序,不管是做数学运算,还是游戏,播放电影,最终都是通过这些小小的运算单元来实现的。看似复杂的东西,其实它的原理是这么的简单。大道至简,让我们再次体会到中国古人的智慧!

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多