bit操作题目思考

说实话这类题目比较考验智商,如果之前没有见过的话做出来的难度比较大。基本思路很多都是利用XOR解题

find bit parity

这题就是找奇偶校验位的值,有奇数个1就是1,有偶数个1就是0。在513 datalab出现过,现在在思考感觉没那么难了。基本思路就是把所有的1进行XOR,看最后是1还是0.

x ^= x >> 16 
x ^= x >> 8 
x ^= x >> 4 
x ^= x >> 2 
x ^= x >> 1 
x &= 1;

找出2个只出现一次的数值

这个题目可以全部XOR,得到x XOR y。之后取其中一位,然后把数组分成2部分,一半有这位,一半没有,然后用前两题的思路。