异或的妙用
异或在编程中有很多用法,先介绍三种方法.
第一种
比如说在很多个数中删除一个数,要求删除这个数的位置。
1. 删除前的每个数异或得到a.
2. 删除后的所有数异或得到b.
3. a^b即为删的数。
4. 原理a=a^x^x.
第二种
举个例子
交换两个变量的位置A-B且不占用其他空间
A:1010 B:1100
A=A^B (A:0110,B:1100)
B=A^B(A:0110,B:1010(原来A))
A=A^B(A:1100(原B),B:1010(原A))
第三种
搜索重复的数字可以使用异或,这种方式又进阶版.