15.二进制中1的个数
2019-07-08 本文已影响0人
HamletSunS
思路:
这道题要注意一个细节,右移的话并不好判断最高位是什么(逻辑右移还是算术右移?)
因此最保险的做法是对1进行左移,然后与数字进行与运算,运算结果不为0,说明当前为是1.
class Solution {
public:
int NumberOf1(int n) {
int one=1;
int ret=0;
while(one){
if(n&one)
ret++;
one=one<<1;
}
return ret;
}
};