【阅读】奇妙的异或

作者: 沐南秋 | 来源:发表于2022-04-09 20:08 被阅读0次

今天这篇有一点不好理解,喜欢思考难题的小伙伴往下看。

看技术书籍的时候,看到这样一个论断:一个数对另一个数做2次异或运算,还等于其本身。

什么意思呢?

首先要知道什么是抑或,这是在初级编程和代数里面都会提到的概念。

抑或(以xor来表示),是一种需要两个操作数的运算符。

两个变量a与b的抑或运算结果,如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

这种逻辑运算,更加适用于计算机的二进制世界,非黑即白,非0即1。

1 xor 0 = 1;
0 xor 1 = 1;
1 xor 1 = 0;
0 xor 0 = 0;

到这里非常容易理解,但是那个论断就不那么容易理解了。

一个数,对另一个数做两次抑或运算,结果还等于这个数本身。

也就是说,(a xor b)xor b = a;

很神奇,为什么呢?

随便去两个数字去试,确实是这样,比如x=0b1101;y=0b0011(0b表示这个数字是二进制,这个例子中x、y都是4位的二进制数)
x xor y = 0b1110;
(x xor y) xor y = 0b1101 = x;

虽然想不清楚为什么,但是感觉其中一定有非常玄妙的深意。

书中举了这个例子的两个应用。

一个是加密,在第三方不知道加密算法的情况下,你将你的秘钥与某串数字做异或后,通过网络交给你想交给的对象,这样即使别人通过破解网络得到了你交给他的数字,也无法得知真正的密码。

这个时候,对方就可以用预先与你约定好的数字进行异或,也就实现了一个解密过程。

另一个例子,用于编程中的交换两个变量的数值。

a = a xor b;
b = a xor b;
a = a xor b;

这样简单的三行运算,a和b的值就实现了交换。

在易经中,如果以1表示阳爻,以0表示银爻。

有了这个异或的规律,再去看对卦和变卦,会不会有什么启发?

(好吧,其实是今天没什么好写的了……就这样吧)

相关文章

  • 【阅读】奇妙的异或

    今天这篇有一点不好理解,喜欢思考难题的小伙伴往下看。 看技术书籍的时候,看到这样一个论断:一个数对另一个数做2次异...

  • 异或

    定义:同为0,异为10^0 01^0 1奇数^1 加-1;偶数^1 加1任何整数^0 不变:abb(可以调换顺序)...

  • 异或

    异或Exclusive or(通常称为“XOR”)是布尔二进制操作符,当第一个输入或第二个输入(但不是两者都是)为...

  • 异或

  • 异或

    异或 题目原链接:https://www.nowcoder.com/practice/fc05f68c5f4743...

  • 异或

    1010异或1111=0101异或运算还可以 是n-1-N 例如 1111-1010 = 0101

  • 异或

    5.1 概述 异或(XOR)是一种逻辑二元操作,当两个输入中有且仅有一个为真时,结果为真。 另一种思考异或的方式是...

  • 什么是异或_异或运算及异或运算的作用

    异或,是一个数学运算符,英文为exclusive OR,缩写为xor,应用于逻辑运算。异或的数学符号为“⊕”,计算...

  • 存或所异,异或所存…

    《生》 隐约有声响,翩跹,三两, 划破长空的瞬,圮绝寂寥; 星晕下,墨影飘洒, 踟躇而又悠扬。 汲汲追...

  • 与,或,异或

    总记不住与:& 只有对应的两个二进位均为1时,结果位才为1 ,否则为0。9&5 = 00001001 & 0000...

网友评论

    本文标题:【阅读】奇妙的异或

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