美文网首页
《编码 隐匿在计算机软硬件背后的语言》 - 加法是怎么计算的

《编码 隐匿在计算机软硬件背后的语言》 - 加法是怎么计算的

作者: 秦砖 | 来源:发表于2018-05-12 23:24 被阅读131次

    IT业混了这么久,在没看到这本书之前,如果有人向我提出这么个问题,我第一反应应该是愣一下,然后扯一堆计算机通过二进制将两个数字加到一块等相关内容,但具体用的是怎么样的机制,我是回答不出来的。那么看下这本书中讲述的计算机是如何做加法的吧:

    + 0 1 2 3 4 5 6 7 8 9
    0 0 1 2 3 4 5 6 7 8 9
    1 1 2 3 4 5 6 7 8 9 10
    2 2 3 4 5 6 7 8 9 10 11
    3 3 4 5 6 7 8 9 10 11 12
    4 4 5 6 7 8 9 10 11 12 13
    5 5 6 7 8 9 10 11 12 13 14
    6 6 7 8 9 10 11 12 13 14 15
    7 7 8 9 10 11 12 13 14 15 16
    8 8 9 10 11 12 13 14 15 16 17
    9 9 10 11 12 13 14 15 16 17 18

    上面是幼儿园小朋友就要学习的加法基础,它可以称得上是整个数学的基石了吧。同样计算机也有自己的计算基石,如下:

    + 0 1
    0 0 1
    1 1 10

    如果分的再细一点,可以将这张表分成加法表与进位表:

    加法表 0 1
    0 0 1
    1 1 0
    进位表 0 1
    0 0 0
    1 0 1

    能够发现加法表中做的是异或运算,而进位表中则做的是与运算。可以通过以下电路实现单位二进制数的加法:

    半加器电路实现
    忽略电路实现细节的黑盒半加器

    A与B相加的结果通过进位输出与加和输出一同表示。半加器只能做一位二进制的加法,可以将两个半加器组合成全加器。

    全加器电路实现
    忽略电路实现细节的黑盒全加器

    全加器实现了事进位的一位二进制数的加法,将多个全加器连起来,很自然地就能实现多位二进制数的加法了。

    8位加法器

    同样可以将8位加法器组合在一起形成16位加法器。到这里,是不是觉得原来计算机做的完全不是加法,而是电流在电路中的正常流动罢了,只是因为人类设计了其流动的方式进而达到了自己计算的目的。

    相关文章

      网友评论

          本文标题:《编码 隐匿在计算机软硬件背后的语言》 - 加法是怎么计算的

          本文链接:https://www.haomeiwen.com/subject/lpocdftx.html