题目
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
思路
最开始考虑将无符号整数转化为 string 类型,但是没找到对应的函数,写起来比较麻烦。
所以考虑用1不断移位,并按位与。
class Solution {
public:
int hammingWeight(uint32_t n) {
int ret = 0;
for (int i = 0; i < 32; i++) {
if (n & (1 << i)) {
ret++;
}
}
return ret;
}
};
代码来源:Leetcode.cn