\1. 不用任何比较判断两个数中大的那个数
我们将两个数做差,得到另一个数,判断这个数的符号位就可以了。当然,不能直接使用判断语句,所以我们使用位运算来操作。
\2. 两个相同的数异或结果等于0。
就这道题而言,在运算过程中会产生一个中间值,即a与b的异或结果,a异或b再异或b就会等于a,如果第二次异或a就会等于b。
所以直接三个异或就可以搞定
\3. 整数的二进制中有多少个1
每次循环采用n&=(n-1),这样可以跳过二进制位是0的数。
\4. 数组中只有一个数出现了奇数次,其他数都出现偶数次,找出这个数
这道题还是使用了异或的性质,两个相同的数异或等于0,遍历一遍数组就可以得到出现奇数次的那个数。