1. 位运算
符号 运算
& 与
| 或
~ 非
^ 异或
>> 右移
<< 左移
常用操作:
求x的第k位数字 x >> k & 1
lowbit(x) = x & -x,返回x的最后一位1
>>对于二进制而言,右移就是删去最后一位,1100->110
<<对于二进制而言就是添加一位,110->1100;
例如:输入一个 3232 位整数,输出该数二进制表示中 11 的个数。
class Solution {
public:
int NumberOf1(int n) {
int count=0;
for(int i=0;i<32;i++)
{
if(n>>i&1==1)//第i位是否为1
count++;
}
return count;
}
};