位运算

a<<b

a转为二进制向左移b位(左移是逻辑移位,右端补0)。

等价于a × 2b

更底层的操作,速度更快。

a>>b

a转为二进制向右移b位(右移是算数移位,左端补的是最高位的符号位)。

等价于a ÷ 2b

异或

任何数和自己异或的结果都是0。

异或可以用来交换两个数字

a ^= b;
b ^= a;
a ^= b;
这三步之后,a与b的值就交换了。

一个整形数组,存1到n的所有整数,但缺省一个值,找出此值。

先求1到n的异或,再和数组中所有数异或,结果就是要找的值。

一个整形数组除一个数只出现一次外,其余的都出现2次,求这个数

数组中所有值进行异或即可。
原文地址:https://www.cnblogs.com/pacino12134/p/11046103.html