六合洒霖雨 万物无凋枯
服务热线: 400-662-0602
关于我们
联系我们

联系人:程经理

联系电话:400-662-0602

邮  箱:13933620602@163.com

地址:河北省秦皇岛市海港区

新闻中心

这破玩意儿叫计算机?

作者: 发布时间:2021-02-05 13:39:02点击:726 

你管这破玩意叫计算机?

低并发编程,周一很颓废,周四很硬核

我和小宇早恋了,我们家住隔壁。

打开网易新闻 查看更多图片 

一、编码与电路——信号的转换

晚上父母会把手机没收,但我们还想继续聊天,又不敢发出声音,于是我们想到了这个办法...




我们把所有的中文都用灯泡的亮灭组合来表示,同时约定好每隔一秒读取一次灯泡的状态并记录下来,这是我们的暗号。

:亮亮灭灭亮

:灭亮亮灭灭

:亮灭亮灭亮

:亮亮亮灭灭

这样,我们虽然没有了手机,依然可以日以继日地聊天,虽然效率很低,但依然很快乐。

我和小宇就这样在不经意间,将语言转换成为了灯泡的亮灭组合,这个过程叫做编码

二、门电路——信号的关联

我和小宇就这样一直秘密保持着通话,直到上了大学,父母再也管不了我们用手机了。

但这么多年的小灯泡通话,使我们总觉得事情没那么简单,于是我们开始了一些新的探索。




我们增加了一个开关。此时当两个开关同时闭合时,灯泡才会亮。

这样两个开关与灯泡之间,不再是之前简单的对应关系了,而是有了逻辑

开关的断开与闭合分别对应着电路的断开与连通。而小灯泡的不亮与亮,也分别对应着电路的断开与连通。那这两者就可以统一,不再依赖于具体的实物表现了。




还有,开关的连通与断开,是主动的。而小灯泡的连通与断开,是被动的,是结果。

我们把开关这里的连通与断开称为输入端,把灯泡的连通与断开称为输出端,并且将整个电路都封装在一个图形里,可以得到如下抽象:




我们决定把这种电路叫做门电路, 上面这个叫与门

为了今后更为抽象的探索,我们将电路连通表示为数字 1,电路断开表示为数字 0。

我们将这种表示方式称为二进制

输出

0

0

0

0

1

0

1

0

0

1

1

1




慢慢地,我们发现了越来越多的玩法。




上面这种电路,我把他抽象成如下门电路形状,叫做或门




之后便一发不可收拾,我和小宇设计了越来越多的门电路,我们发现,只要是我们能想到的逻辑关系,都可以设计成对应的门电路。

三、加法器——信号的计算

十进制数可以转换成二进制数,而二进制数又可以对应到门电路的输入端与输出端。

于是我和小宇有了一个大胆的想法,能不能设计一个计算加法的电路呢?

我们首先从最简单的一位二进制数相加开始:

0+0=0;0+1=1;1+0=1;1+1=10

变成一张表格如下

加数 A

加数 B

加和

进位输出

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

即我们需要设计出一种电路,可以达到表中的输入与输出效果。

经过不懈努力,终于发现这个电路可以由异或门与门两个门电路组成。

这个装置实现了二进制的一位加法,但它并不完美,因为只考虑了这两个数的进位输出,但没有考虑上一位的进位,所以只能叫半加器

如果将前一个进位考虑进来,只需再多一个半加器,并且拼接一个或门即可。

此时我们已经建立好了一个完美的一位加法器,并自豪地称之为全加器

全加器做出来之后,无论多少位的加法器就都可以做出来了,只需将全加器逐个拼起来即可。我们尝试做一个八位加法器

OK,大功告成,有了加法器,理论上就可以实现任何的数学运算了。

因为我们知道乘法可以转换成加法,除法可以转换成减法,而减法又可以转换成补码的加法。现在我们可以自豪地称这个部件为,算术逻辑单元 ALU

四、时钟——信号的震荡

我和小宇都非常高兴,终于用电路的方式实现了计算功能。

但慢慢的觉得没什么意思了,于是我们又突发奇想,设计了如下诡异的电路。