注册 登录
  • 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

用机器做加法

微机原理 彭东稳 6930次浏览 已收录 0个评论

电子计算机也就是电脑,早期人们发明计算机的目的仅仅是用来进行数据计算的。当世界上第一台计算机出现的时候研制它的目的依然是进行数据计算。但是现在我们使用计算机发现其功能之多令人眼花缭乱。看电影听音乐等等。其背后数学运算仍是最重要的组成部分之一,而且是非常基础的组成部分。

提示:二进制、八进制、十进制、十六进制都是什么且之间怎么转换需要你明白之后再看此章节(本博客有专门写进制的章节)

电压做运算

对于电子计算机来说要进行数学计算,首先要解决的问题是如何将参与计算的数送进计算机。以一个普通的加法运算部件来说它需要两个输入端“加数”和“被加数”以及一个输出端“和”。那么最自然的想法就是使用电压来表示不同的十进制来进行计算。如计算20+30那么可以在加数端加上20V的电压而在被加数端加上30V的电压,当运算完成后“和”端就会有40V的电压而这正是我们想要的结果。但是经过思考过后发现问题也来了,比如计算非常大的数字如23929434+384893948;那么输出的电压该有多大,且人和机器都无法承受;其最困难的是这样一个运算部件无法计算小数由于电压的不稳定性。

开关做运算

对于十进制而言0-9逢十进一在我们生活中那是经常使用;但是对于计算机来说却不是最好的选择;还有一种计数法那就是二进制只有“零”和“幺”两个数遵循逢二进一的原则。如图十进制对应二进制表,

用机器做加法

以此类推再大的数也可以使用二进制表示,同时二进制数也可以很好地表示小数位。

在十进制中具有不同的数位,分别是个十百千等等,但是在二进制中通常不需要这样细致的划分,因为二进制数一般都很长。对于单个的二进制数位,它们都只有一个称呼“比特”每个比特具有两个可能的值0或者1,二进制的每一位都称为一个比特。

 

当你因为发现二进制数只有01两个符号就不需要在使用电压来做运算了,而是改用开关来实现,当开关断开时电流被切断这代表0,当开关接通时,电路中有电流通过这表示1。相比使用电压来做运算的好处就是可以做小数运算并且在物理实现上更加简单了。实事上进行加法运算时把电路和逻辑学结合在一起完成的就是所谓的用电路的闭合开关来完成计算机的逻辑运算而后把逻辑运算转换为所谓的算术运算。

使用二进制后一个开关只能进行一位运算如果要进行多位运算时那么就需要一排的开关多根线,然后把我们需要输入的二进制按照顺序进行开关闭合,然后在输出端为了验证输出结果的是否正确,我们可以在每一个输出端都加上一个小灯泡这样它就能以可视化的形式直接被我们用眼睛观察到当某根导线上有电时则表示1没有电则表示0。然后根据顺序在转换为我们使用的10进制数就可以了。如图所示

用机器做加法

看来二进制与电学还真有着不解之缘好像它就是专门为发明电子计算机二量身定做的;遗憾是这两者之间并没有什么关联。二进制创建于1672—1676年间。发明它的是德国人莱布尼茨。

二进制做加法

我都经常都是使用十进制做加法,个位加个位逢十进一、进到十位上然后在十位加十位加进位数且逢十进一到百位一次类推;我们都会并且感觉很简单那么其实二进制做加法更简单如11101+110=100011写成十进制等于29+6=35;那么两个二进制相加是怎么得到另外一个二进制数的呢?我们知道十进制加法的过程中有两点比较重要的:一是必须掌握加法口诀、二是需要考虑进位很不巧,如果要做二进制加法,这两点同样很重要,简直避不开。不过二进制的口诀比较简单因为它只有两个基本数字01其口诀如下:

00等于0

10等于1

01等于1

11等于01

再来算一下11101+110=
  1 1 1 0 1
1 1 0
————
1 0 0 0 1 1

PS1+0=10+1=11+1=011+1=011+1=011+0=1

全加器构造加法机

上面已经讲过使用二进制做加法是多么地简单,但是怎么实现一个可以进位的加法器呢?那么可以设计一个电路图来完成每一列的相加过程;如图

用机器做加法

既然是一个电路它肯定有一个名字就叫全加器,但是这个初步的加法器只能进行1位二进制数的运算。有了全加器,解决了二进制加法中每一列的计算问题,那么我们可以搞一堆全加器,根据被加数和加数的比特数,把它们串联起来组成一个完整的加法电路;以下是一个可以进行3比特二进制数运算的加法器(输出结果为4比特)。如图

用机器做加法

图中a2a1a0b2b1b0分别可以输入加数和被加数,S0S1S2S3是输出;组成它们的每一个比特都可以用开关闭合与断开来得到。

第一个全加器的Co进位的输出是第二个全加器进位的输入,接下去的每一列数都以这种方式连接,每一列的进位输出都是下一列的进位输入。最后一个全加器的进位就可以直接输出显示。比喻计算101+110=1011等于十进制5+6=11(利用二进制计算方法结合上图可以自己算一下,全加器计算的结果应该与你自己算的一样。)


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (1)or分享 (0)
关于作者:

您必须 登录 才能发表评论!