此题主要问题在于对无符号数的二进制位运算,通过位运算符将无符号数的最后一位通过与运算取出来,是1则结果加1即可。
代码如下:
int hammingWeight(uint32_t n) {
int result = 0;
for(int i =31; i>=0; i--)
{
result += ((n>>i) & 1);
}
return result;
}
此题主要问题在于对无符号数的二进制位运算,通过位运算符将无符号数的最后一位通过与运算取出来,是1则结果加1即可。
代码如下:
int hammingWeight(uint32_t n) {
int result = 0;
for(int i =31; i>=0; i--)
{
result += ((n>>i) & 1);
}
return result;
}