题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路分析
- 辅助变量,只有1位是1,
- 循环,直至辅助变量为0
- 与运算,统计1的个数
- 辅助变量中的1左移
class Solution {
public:
int NumberOf1(int n) {
int count = 0;
unsigned int flag = 1;
while(flag){
//++count;
//n = (n - 1) & n;
if (flag & n) ++ count;
flag = flag << 1;
}
return count;
}
};
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1056615746@qq.com