题目描述:
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
示例:
输入:
输出:
解释: 32位整数 的二进制表示为 。
题目分析:
判断32位二进制中1的个数,此题利用n&(n-1)性质可解
解答代码:
C++版:
class Solution {
public:
int hammingWeight(uint32_t n) {
int ans=;
while(n>){
n=n&(n-);
ans++;
}
return ans;
}
};
Code
Python版:
class Solution(object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
ans=
while n>:
n=n&(n-)
ans+=
return ans
Code