Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).
For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.
//编写函数接收一个无符号整数,返回其二进制形式中包含的1的个数(也叫做汉明权重)
//例如32位整数'11'的二进制表示为:00000000000000000000000000001011,因此函数应当返回3
//解题思路:按照十进制转二进制的方法,记录余数为1的个数,即汉明权重
class Solution {
public:
int hammingWeight(uint32_t n) {
int c = 0;
while (n > 0){
if (n % 2 == 1)
c++;
n = n / 2;
}
return c;
}
};
//方法二:位操作(bit manipulation)
class Solution {
public:
int hammingWeight(uint32_t n) {
int c = 0;
while (n > 0){
if (n &1 == 1)
c++;
n = n>>1;
}
return c;
}
};
汉明权重计算与位操作优化

本文介绍了一个计算无符号整数二进制形式中1的个数(汉明权重)的函数实现,包括基本迭代方法和位操作优化两种策略。通过实例演示了汉明权重的概念,并对比了不同方法的效率。
101

被折叠的 条评论
为什么被折叠?



