异或

154 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

什么是异或?

Wikipedia的解释:

在逻辑学中,逻辑算符异或是对两个运算元的一种逻辑析取类型,符号为 XOR 或 EOR 或 ⊕(编程语言中常用^)。但与一般的逻辑或不同,异或算符的值为真仅当两个运算元中恰有一个的值为真,而另外一个的值为非真。转化为命题,就是:“两者的值不同。”或“有且仅有一个为真。”

例如:

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 1

简单的说就是相同为0不同为1

异或用处

1:交换律

a ^ b = b ^ a

2:结合律

(a ^ b) ^ c = a ^ (b ^ c)

异或的用法

1:判断两个数是否相等

因为a == b,而相同的两个数异或为0

2:我们可以使用异或来使某些特定的位翻转,因为不管是0或者是1与1做异或将得到原值的相反值;

例如:1001翻转第二位则与0010异或

3:我们使用异或来判断一个二进制数中1的数量是奇数还是偶数

例如:101010 = 1^0^1^0^1^0,如果结果为1就是奇数为0就是偶数