题目链接:https://leetcode.com/problems/number-of-1-bits/
Runtimes:10ms
1、问题
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.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
2、分析
简单的十进制转换成二进制。
3、小结
需要注意两点:1、n == 0时的处理;2、++couter和couter++不同,不要用错。
4、实现
class Solution {
public:
int hammingWeight(uint32_t n) {
if(n == 0)
return 0;
int couter = 0;
while(n > 1)
{
if(n % 2 == 1)
couter++;
n /= 2;
}
return ++couter;
}
};
5、反思
对于uint32_t的解释,其实就是unsigned int用typedef起得别名。
文章链接:http://www.cnblogs.com/kungfupanda/archive/2013/02/06/2907665.html