异或运算总结

2023-11-20

其实主要是想介绍一些关于异或的一些例题 方便自己的复习:)

目录

什么是异或运算?

异或运算的性质

异或性质的应用


什么是异或运算?

异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)       ——摘自百度百科

说人话就是两个数先变成二进制数,然后比较两个数的二级制的每一位:

相同为0  不同为1 

得出来的每一位的结果组成的数就是 两个数异或的结果。

异或运算的性质

简单写写(主要是想介绍一些例题QAQ)

1.归零律

即任何数与其本身异或结果为0   如 a异或a为0

2.恒等律

即任何数与0异或还是它本身  如 a异或0还是a

现在插播一道超级超级基础的一道题

如何不依靠第三者交换两个数(好奇怪 &A&)

	int a=1,b=3;
	a=a^b;
    //a变成了 1^3
    b=a^b;
    //b变成了 1^3^3=1
	a=a^b;
    //a变成了 1^1^3=3
	printf("%d %d",a,b);

3. 交换律: 

a异或b 就等于 b异或a  (好废话

4. 结合律

a异或b异或c 就等于 a与 b与c异或之后的结果再异或

异或性质的应用

1.首先异或本身就是二进制不进位的加法 解释一下

比如说10101 和11111相加,得到了01010 这就相当于是 10101 与 11111每一位相加得到的结果不考虑进位。拿最右边的一位来说 两个数都是1但是1和1相加得10,不考虑进位(左边的)1 而只剩下(右边的)0 所以得到了就只有0

由此可以得到一个结论:

两个非负数的异或的结果一定小于等于两个数的和。

可以依靠这个做一下这道题 P5514 [MtOI2019]永夜的报应

2.异或本身可以找到多个已配对的数中未配对的一个数

比如说这道题    P1469找筷子​​​​​​

3.对于异或还可以让二进制数 交换位置

P1100高低位交换

4.最后还有一个就是可以判断一个数的奇偶性

因为对于二进制而言只要判断最低位是否是0就知道是否是偶数

所以

嗯!

可以用 与运算&来判断

(谢谢观看:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异或运算总结 的相关文章