---
id: "964367526"
type: answer
title: "如何理解「异或」的含义？"
url: http://www.zhihu.com/api/v4/answers/964367526
created: 2020-01-06T03:25:14.000Z
updated: 2023-04-20T16:31:11.000Z
voteup_count: 0
comment_count: 37
---

# 如何理解「异或」的含义？

异或是一个有趣而又重要的概念，首先，它是一种运算（Operation），其次，它隐藏在自然和生活的秩序中，很多人不了解它的含义和价值。

先看一个小例子：

我们都玩过“找不同”游戏，例如下面的两张图片，你能找出几个不同的地方？

![](../images/remote-43c2426829581b7d25249827d458b7022bf07ea81c4ffefdc1d08e74450b2199.jpg)

![](../images/remote-43c2426829581b7d25249827d458b7022bf07ea81c4ffefdc1d08e74450b2199.jpg)

找不同

  

我相信你能找出很多不同之处，比如女孩的配饰等等。

在异或的英语**Exclusive OR，**中exclusive表示“独家的”、“独有的”，上面两张照片中的配饰就是每个画所独有的。

**异或运算就是在两个的信息中比较，寻找“差异”的过程，当找到了所有的差异，再也找不出新的差异时，异或运算就计算完成。**

异或运算的作用就是帮我们从两堆相似的信息中，发现一些新的信息。因为相同的信息往往是已知的旧信息，而不同的信息才是需要关注的新信息，这是一个信息增量的过程。

这个信息增量有什么用呢？

太有用了，对大部分生物来说，这些新信息甚至是性命攸关的信息。

## **自然中的异或计算**

除了我们人类能进行异或计算，其实动物也可以，比如这只蝴蝶 。

![](../images/remote-23fabee8c9ef1ad731449399803aa1c8a8e9302885e141186ca2622862d68183.jpg)

![](../images/remote-23fabee8c9ef1ad731449399803aa1c8a8e9302885e141186ca2622862d68183.jpg)

徒手抓蝴蝶的调皮少女，我女儿(^-^)

小时候徒手抓蝴蝶的诀窍是什么？

当然不是冲过去乱抓，要蹑手蹑脚慢慢走近，当罪恶之手一点点靠近翅膀的时候，猛的一下捏住……

可为什么慢慢走近是有效的，快速跑过去就把蝴蝶吓跑了？

这是因为动物的视觉依靠异或运算来发现运动物体。

-   对于不动的物体比如建筑，或运动很慢的物体比如云彩，因为变化的差异太小，大脑无法将其从背景里分离，会自动化的进行忽略。
-   对于快速运动的物体，比如飞来的鸟，大脑发现他和背景有明显的变化差异，认为这是潜在威胁，会自动化的关注，并快速的逃离。

![](../images/remote-dc5ba4d4fdc7ce4a1f5dcc25b952d7d16a0a307d89ecf6c2822a774283325c53.jpg)

![](../images/remote-dc5ba4d4fdc7ce4a1f5dcc25b952d7d16a0a307d89ecf6c2822a774283325c53.jpg)

运动物体检验Moving Object Detection

图片出处：[https://arxiv.org/pdf/1901.03360.pdf](https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1901.03360.pdf)

小孩要是快速接近蝴蝶，会被蝴蝶的视觉异或算法发现，引起高度注意和警觉。而缓慢的靠近蝴蝶则伪装成了自然背景，成功的欺骗了蝴蝶。

当然实际的大脑或电脑的算法比这个复杂很多，并不仅仅是异或运算，但是目的都是寻找发生了变化的信息。

所以异或运算对动物性命攸关，它们要时刻比较周围的环境，一般来说，静止的是安全的，运动的很可能是危险的，是需要高度警觉的。当然这一点也会被更聪明的捕食者利用。

  

除了自然生物，异或运算在社会生活中还有哪些用途？

在信息科学领域，到处可以看到异或运算。

## 天文学家可以用异或运算来发现新的天体

这是一个“天文学找找看游戏”。

下面两张照片是同一片星空，但是不同时间的拍摄照片。亮点大部分是恒星，位置不动，有一颗则是小行星谷神星，它在两个照片中的位置不同，你能找出来吗？

![](../images/remote-489381471e066b3f59a6c1367799d4427c47e432fac8343361a78e49c09dc626.jpg)

![](../images/remote-489381471e066b3f59a6c1367799d4427c47e432fac8343361a78e49c09dc626.jpg)

![](../images/remote-0b8a70106a46071f4e92430deb361b170831892c44fcf6a9f733ebc60245a47b.jpg)

![](../images/remote-0b8a70106a46071f4e92430deb361b170831892c44fcf6a9f733ebc60245a47b.jpg)

找到了吗，是不是很难？

反正我没找到，在没有计算机之前，可以想像天文学家找移动天体有多难。

但是有了计算机，我们可以对两个图片做异或运算，把两张照片中相同的数据删除，只留下不同的数据，我们就得到处理后的两张照片。

![](../images/remote-25296d1a99878bd1a694e5e54a15216832c3f2243ed3f633e5b9b9247b2dd219.jpg)

![](../images/remote-25296d1a99878bd1a694e5e54a15216832c3f2243ed3f633e5b9b9247b2dd219.jpg)

![](../images/remote-bf6a593d611c89cfeb90f274337cf97f656b9e5887ef94665995e4118c290f92.jpg)

![](../images/remote-bf6a593d611c89cfeb90f274337cf97f656b9e5887ef94665995e4118c290f92.jpg)

我们很快就要找的了新信息，发现了移动的谷神星。

![](../images/0321bad404bcef266104ed2ed4f4ebc3ba8a60b93a43b40bceeba68ec9b7a02b.jpg)

![](../images/0321bad404bcef266104ed2ed4f4ebc3ba8a60b93a43b40bceeba68ec9b7a02b.jpg)

以上图片的出处：[https://www.benengebreth.org/dynamic-sky/ceres/](https://link.zhihu.com/?target=https%3A//www.benengebreth.org/dynamic-sky/ceres/)

用维恩图可以演示异或运算的过程

![](../images/remote-258cb9b88b97f878528241a893cd7459666946153e5855a717e08a6e99a601ba.jpg)

![](../images/remote-258cb9b88b97f878528241a893cd7459666946153e5855a717e08a6e99a601ba.jpg)

## 异或运算还可以用来压缩数据

我们知道，视频文件是由很多图片帧组成的，相邻的帧之间有很多重复的数据，我们可以用异或把这些冗余的数据去除，只留下帧和帧之间不同的数据。

![](../images/remote-bbc18aaaaeaa727d3741f2678e905628054d00d3dadea62ff9ca0e8e993a6ee8.jpg)

![](../images/remote-bbc18aaaaeaa727d3741f2678e905628054d00d3dadea62ff9ca0e8e993a6ee8.jpg)

去掉冗余数据后，图片帧里的数据就减少了很多

![](../images/remote-ca81b4c3a1e495102953acff124cff7135937839170a92b0f67119fad37deddf.jpg)

![](../images/remote-ca81b4c3a1e495102953acff124cff7135937839170a92b0f67119fad37deddf.jpg)

图片出处：[https://www.i3m-detectors.i3m.upv.es/wp-content/uploads/2019/10/20191106-SeminarioHEM.pdf](https://link.zhihu.com/?target=https%3A//www.i3m-detectors.i3m.upv.es/wp-content/uploads/2019/10/20191106-SeminarioHEM.pdf)

这样就可以大幅度压缩视频文件的尺寸。

  

异或运算的用途非常多，例如在加密算法、数字电路、5G通讯、人工神经网络中都有异或运算的身影，因为篇幅所限这里就不再一一列举了。

相信这些例子和应用领域就足够大家理解异或的含义和价值。

## 总结

1.  异或其实就是找不同。
2.  异或运算在自然中随处可见，对动物来说，异或能提供性命攸关的信息。
3.  人们利用异或的运算特性，在重复数据中去除冗余信息，实现信息增量和数据压缩。

在信息领域的硬件、软件设计中，异或是不可或缺的存在。

[知乎原文](http://www.zhihu.com/api/v4/answers/964367526)
