异或操作的图形证明

如题所述

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

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

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

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