位运算总结
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
需要判断某个数字的第位是否为1, 使用只有第位为1的掩码, 与该数字相与, 如果结果不为0, 则该位置为1.
得到掩码的方法是将1左移次.
相关题目:
对于任意数字, 将与相与, 就可以把数字的最后一位变为0.
相关题目:
异或运算满足结合律.
相同的数字进行异或, 得到的结果为0; 相同的三个数字进行异或, 得到的原来的数字
题目:
对于两个数字a
和b
, 有:
a^b
: 每位的异或运算, 得到的结果为无进位相加的结果
a&b
: 每位的与运算, 得到的结果为进位结果
因此将这a^b
与a&b
左移一位相加, 得到的仍然是a+b
. 左移一位的目的是实现进位.
参考:
[67][简单] 二进制求和
在反复出现数字组成的数组中, 找到其中异常的数字, 即独立出现, 或出现次数异常的数字.