您的位置:首页 > 其它

IMWeb提升营Day2 | 训练题11:二进制中1的个数

2017-05-27 15:29 225 查看

题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

思路

/*
* 思路:就是很简单的左移动操作,挨个查,注意int有32位,注意右移操作会让负数引入1,所以不要用右移动
*/
class Solution {
public:
int  NumberOf1(int n) {
if(n == 0) return 0;
int cnt;
while(n){
if((n & 0x80000000) == 0x80000000){
cnt++;
}
n = n << 1;
}
return cnt;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: