美文网首页
异或操作的图形证明

异或操作的图形证明

作者: HugiFish | 来源:发表于2019-06-05 20:51 被阅读0次

    异或操作在算法中有比较广泛的应用,最为经典的要属不利用额外空间交换两个变量的值。虽然可以利用二进制进行推导但是始终无法直观的记忆。下面我们就利用高中所学过的知识,直观的推导异或操作中两个定律,加深记忆。


    异或操作就是一个逻辑问题,高中学过的集合知识也是一种逻辑问题,既然集合问题可以和图形联系起来,那么为什么异或操作不能呢。


    异或和集合的假象联系

    我们可以利用几何图形的面积代表集合,两个集合的交集就是图像重合的面积,并集就是两个图像在纸张上的实际面积(注意是实际面积,不是面积加和)
    由于二进制每一位的异或运算是独立的,并不受其他位的影响,那么我们就可以把一串二进制数抽象成一个长纸条,每一位的区域都是固定的,如果这一位是1,那么这一位所对应的区域就是涂满的,相反,对应的区域就是空的,这个纸条上所有有面积的加和就是这个二机制对应的集合。
    现在我们将二进制抽象称为面积表示。
    异或操作在逻辑上就是或与非,映射到集合上,就是两个圆的没有重叠的面积的总和
    根据上面这条红色的字,我们就可以对两条二进制纸带做异或运算了,就是把两条纸袋重合,然后抛去相互重叠的面积,最终得到的面积就是那个异或的值。

    纸条名 7 6 5 4 3 2 1 0
    a纸条
    b纸条
    (a^b)纸条

    如果我们再进一步的抽象,把这个纸条堪称一张白纸上的一个圆,(这张白纸上每一位对应的区域是固定的),先花一个a圆,再一个b圆,由于每一位在白纸上对应的区域是固定的,如果a对应位和b对应位都是1,那么a和b在纸上的这个区域是重合的。那么a^b的面积是什么呢?就是下边这个


    根据面积我们就可以正面好多东西啦~
    比如说交换律和结合律

    如上图所示
    交换律:很好懂,因为每一位区域是固定的,所以无论是怎样的顺序,都不影响a圆和b圆在纸上的位置。自然面积也是一样的。
    结合律:同理

    相关文章

      网友评论

          本文标题:异或操作的图形证明

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