位运算
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次,求这个数
数组中所有值进行异或即可。