<<,有符号左移位,将运算数的二进制整体左移指定位数,低位用0补齐。
>>>,无符号右移位,不管正数还是负数,高位都用0补齐(忽略符号位)
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
class Solution {
public:
int NumberOf1(int n) {
int sum=0;
int index=1;
while(index!=0){
if((index&n)!=0){ //二进制每有一位为1
sum++;
}
index=index<<1; //1的二进制左移一位
}
return sum;
}
};