位运算

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次,求这个数

数组中所有值进行异或即可。

 

 

posted @ 2019-06-18 16:47  Austin_anheqiao  阅读(123)  评论(0编辑  收藏  举报