处理器是怎么计算加法的

只要你认真读这篇文章,我觉得你也能制作出一个用于计算加法的处理器。

今天,计算机已经完全融入了我们生活。前几篇文章介绍了计算机整体的工作原理,这篇文章来单独介绍一下处理器是怎么计算加法的。

首先,想要了解计算机,就必须了解二进制。

我们常用的是十进制。用十个数字来表示。

当然,还有各种例如六十进制啊、十六进制啊等等,但人们最常用的还是十进制。

直到有一天,人们开始开发计算机。开发者们发现,使用二进制来开发计算机要比使用十进制方便的多。这是因为二进制刚好对应电路的开和关。

你可不要小看二进制。五个手指,使用十进制可以数到五,使用二进制就可以数到三十一。

注:在这篇文章中,我们在二进制数字的前面添加B来防止混淆。

如果你不相信,可以用手指头去数。

我们回到主题。怎么用二进制做加法呢?

你可能会说:“让计算机数手指头”

……

我们用一个表格来表示。

这是一个最小的二进制计算单位,它只能计算B1+B1以内的加法。

(无非就是B0+B0、B0+B1和B1+B1)

你应该还记得,加法中,和就等于加数加加数。

输入进位可以用一个加法竖式来解释。

注意箭头指向的1,它就是十位上的输入进位。是个位上加出的。

其实个位也有输入进位,是0。因为没有人给它进位,它是最低位。

我们回到上面那一张表格。

我们给他几个数。

注意,结果是个位上的。进位才是十位上的。

我们将输入进位为1。

注意,进位到这一位只代表一,而不是十。

现在,我们只能计算1+1,我们来改进一下。

我们将这个二进制计算单位叫做One Bit Adder(一位加法器)。

这根本不够计算一般的加法。谁会制作一个计算机来用于计算1+1呢?

我们多搞几个。

把它们连起来并给一个放置加数以及结果的地方。

先是第一个。

C-Out连接C-In。

由于它是最低位所以没有输入进位。

他的num1连接加数1的最低位,num2连接加数2的最低位,将个位上的结果(sum)显示到结果上,最终进位(C-Out)显示到最终进位上。

屏住呼吸。3---2---1---睁眼!

千万别晕!我们一起来分析。

我们发现红色线段连接着最低位的C-Out。差不多是这个样子的。

我们继续用竖式。

个位上的One-Bit-Adder就将进位1塞给了十位上的One-Bit-Adder。

十位上的One-Bit-Adder没有将进的1看成10,而是看成了1。

现在我们将理论上的变成实际上的,就是把它做出来用。

我们使用三个基本的部件就可以表示各种逻辑。

这三个部件分别是与、或、非。

什么是与?

很明显,与的意思就是都,英文中是and。只有两个条件都满足时才通电。例如1+1 = 2与 2+2 = 4,它就会通电。

什么是或?

或的意思同样很明显。两个条件只要满足一个就通电。1+1=2或2+2=3,它同样会通电。

什么是非?

非的意思就更明显了。它只有一个条件并输出与之相反的情况。例如,非1+1,它会通电。

我们可以用这几个部件做出更加复杂的部件。

与非、或非、异或、同或。

与非是什么?

与非的英文是not and,就是与反义词。例如,1+1=2与1+1=2,这句话会通电,但是1+1=2与非1+1=2就不会通电了。

或非门的英文是not or,或的反义词。

异或这个名字听起来很复杂,但是很简单。当两个输入不相等的时候才会通电。

最后一个是同或,就是一个异或加上一个非,也就是相等的时候通电。

我们可以制作出一个One-Bit-Adder。

我们来分析一下。

假设A为0、B为1、C-In为0。

标黑的线路是通电的线路。

我们从A经过的路线分析。

A首先来到下图箭头处并开始判断。

与的意思是两边相等,A的值1和B的值0不相等,因此不通电。

线路继续。

A又来到下图箭头位。

异或在两边不相等的时候才通电,1和0不相等,因此继续通电。

A和Cin的值不相等,因此通过,Sum的值为1。因此结果为1。

为什么这样连接线路呢?

我们先抛弃一些线路,单独计算个位上的和。

我们先让A为1。

A通过第一个异或门时,如果A为1,B为1就无法通过这扇门。B1+B1=B10,个位上是0。非常正确。

A通过第二扇异或门。C-In其实相当于另一个加数,和上一次检查差不多。

我们再将图片补全。

前面求Sum的步骤不再讲解,我们讲求C-Out的步骤。

继续假设A为1,但C-In也为1。

还是从A的视角讲。

A通过一个异或门,得出Sum为0。向下图箭头位置通电。

发现A和B不相等,因此不通电。

C-In通过了一扇异或门,来到下面的与门。

它发现A的值1和C-In的值相等,于是通电。

来到或门,继续通电,得出C-Out等于1。

将Sum和C-Out连接起来,得到B10。

验算一遍。

太棒了!我们得出了正确的结果。

接下来,我们就可以制作多个加法器并将它们连接起来,我们就有了一个计算加法的计算器!

问题来了:怎么用它计算减法、乘法、除法、指令呢?

希望你看完这篇文章会明白处理器的工作原理!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值