程序员修真之路
字体: 16 + -

第35章 半加器和全加器

    35.

    在程理说完后,所有人的目光都火热起来。

    “这……逻辑运算我算是看懂了,但是这逻辑运算,怎么能做出四则运算呢?”很多人都十分不解。

    带着这份不解和好奇,所有人都聚精会神的看着程理演示。

    于是,这个房间聚集了越来越多的人,最后甚至房间里都塞不下了,连外面通道都挤着很多慕名而来的人。

    面对这么多的人,程理依然没有任何慌乱,而是按照自己的节奏,开始组建加法机起来。

    然后程理还一边组建,一边对着算老讲解起来。

    “为了方便讲解,这里我用‘0’这个符号代替阴,‘1’这个符号代替阳。”程理首先道。

    因为这个世界没有阿拉伯数字,而程理已经习惯用阿拉伯数字,所以还是首先注明了下。

    “要想通过逻辑运算,来实现加法运算,首先需要把二进制的加法运算进行分解。”

    “所以,可以先来看看1位数的二进制加法。”

    0+0=0

    0+1=1

    1+0=1

    1+1=10。

    这就是1位数的二进制加法,所有情况的罗列表。

    比起十进制,无疑简单很多。

    我们可以把上面的二进制加法表,做一点小改进,那就是在结果统一用两位数表示。

    就变成了:

    0+0=00

    0+1=01

    1+0=01

    1+1=10

    “这样一来,二进制数字的相加结果是两位数,分别成为“和”以及“进位”。”

    程理在算老递过来的一块黑板上,写下了这个二进制加法表。

    “如此,我们就可以把二进制加法表,拆分成两个表。”

    第一个是‘和’表:

    0+0=0

    0+1=1

    1+0=1

    1+1=0

    “可以看出,这个‘和’表,就是二进制加法表里结果的末位数拆出来后的结果。”

    第二个是‘进’表:

    0+0=0

    0+1=0

    1+0=0

    1+1=1

    “可以看出,这个‘进’表,就是二进制加法表里结果的首位拆出来后的结果。”

    这时候算老十分敏锐的发现了,拆分后的‘进’表,跟‘与门’逻辑很像!

    于是算老有些激动道。

    “这个进表,跟‘与门’输出结果很像。”

    ‘与门’逻辑是。

    两阴为阴。

    两阳为阳。

    一阴一阳,则为阴。

    阴为0,阳为1。

    所以实际上,‘与门’逻辑用0和1表示的话,就是:

    0+0=0

    0+1=0

    1+0=0

    1+1=1

    而这,正是‘进’表的表现形式!

    “换句话说,我们可以用‘与门’灵路来进行二进制加法计算中,进位的计算!”算老激动道。

    程理心道,不愧是青灵岛上阴阳算学造诣最深的人,竟然这么快就反应过来了。

    于是程理赞叹道:“没错,正是如此。”

    算老这时候将目光放到“和”表上。

    然后他看了半天,也没发现,能跟“和”表相符的门灵路。

    “二进制的‘和’表,要用门灵路实现比较复杂,需要好几个步骤。”

    程理开始了一连串让人眼花缭乱的操作,一个个灵路在程理手中被不断构建出来。

    “首先,需要将一个‘与门’灵路和‘非门’灵路串联起来,形成一个‘与非门’灵路。”

    ‘与非门’灵路是衍生门灵路,是由“与门”和“非门”串联而成,这种串联形式,在逻辑运算里就是先进行“与”逻辑运算,再进行“非”逻辑运算,也就是先与后非。

    因为,“与”逻辑是:

    0+0=0

    0+1=0

    1+0=0

    1+1=1

    将这个逻辑运算结果,再全部用“非”逻辑运算一次,就会得到。

    0+0=0→1

    0+1=0→1

    1+0=0→1

    1+1=1→0

    而这个,就是与非门的输出结果。

    “这个‘与非门’的输出结果,跟‘和’表还是不符,所以我们还需要进一步堆砌。”

    “所以,接下来,我们将‘与非门’灵路和‘或门’灵路进行并联……”

    “然后,将并联后的灵路,再和一个‘与门’串联起来。”

    程理又将灵路进一步拼接。

    “与非门”和“或门”并联后,就会得到两个输出结果。

    再将这个并联后的灵路和一个“与门”串联,那么相当于“与非门”和“或门”的输出结果,变成了“与门”灵路的输入数据。

    我们已经知道:

    “与非门”的输出结果为:1、1、1、0。

    “或门”的输出结果为:0、1、1、1。

    将这两个输出结果,作为输入数据,经由1次“与门”逻辑计算的话,就会变成。

    1+0=0

    1+1=1

    1+1=1

    0+1=0

    “而,0、1、1、0,就是我们想要的‘和’表结果!”

    “所以,只要将一个‘与非门’和一个‘或门’并联后,再和一个‘与门’串联,就可以得到一个二进制加法所需要的‘和’表的结果!”

    “而这个能得出二进制加法‘和’表结果的特殊灵路,也有个专门的称呼,叫做‘异或门’灵路!”

    在程理掷地有声的话语结束后,现场所有人都鸦雀无声,场上一片寂静,所有人都被深深震撼到了。

    逻辑的魅力,第一次在这个世界大放异彩。

    现场的人,都是有一定阴阳算学造诣的人,所以都能从程理刚演示的繁复操作中,感觉到无比高深的内在道理!

    于是,一时间,每个人都陷入深深的思索中无法自拔。

    程理并没有在乎那么多,而是继续制造自己的加法机。

    这时候,我们下一步工作就是,把‘与门’和‘异或门’并联起来。”

    “‘与门’输出进位结果,‘异或门’输出和结果。”

    “这样一来,我们就得到了一个半加器。”

    “一个半加器,只能进行1位数的二进制加法计算,而且没办法扩展。显然实用性很低,我们还需要进一步改良一下。”

    程理一边说着,又一边进行更复杂的灵路搭建操作。

    渐渐的,地上的灵路越来越复杂和庞大,不知不觉居然有几十个基本逻辑门灵路,被程理用各种方式串联并联起来,让周围人已经看得有些眼花缭乱起来了。

    “嗯嗯,这样将两个半加器连接起来,再加上一个进位输入,我们就得到了一个全加器。”

    “一个全加器可以进行1位二进制加法运算,但比起半加器,全加器有了扩展空间。

    “只要将2个全加器这样连接在一起,就可以计算2位二进制计算……”

    “所以,接下来就是数量的堆叠了,想要实现8位数的二进制计算,就一共需要搭建8个全加器,144个继灵器。

    “这得花点时间,你们稍微等我一会……”

    程理开始不停的忙活起来,一台这个世界最原始的灵力计算机,正在程理手中逐渐形成!

    ======

    (这几章太难写了,我基本整个国庆假期都在找资料,没有出去玩,而是捧着几本编程的书死啃,兔子写书一向是比较严谨的。

    看在兔子这么认真的份上,大家多投点推荐票给兔子吧!)