1、题目描述
输入一个数字,返回它的二进制表示中有多少个1.
2、思路
位运算,删除一个数字的最后一个1的方法是 n&(n-1),
重复这个运算,直至n为0.
3、代码
int hammingWeight(uint32_t n) {
int ans = 0;
while(n){
n=n&(n-1);
ans++;
}
return ans;
}
1、题目描述
输入一个数字,返回它的二进制表示中有多少个1.
2、思路
位运算,删除一个数字的最后一个1的方法是 n&(n-1),
重复这个运算,直至n为0.
3、代码
int hammingWeight(uint32_t n) {
int ans = 0;
while(n){
n=n&(n-1);
ans++;
}
return ans;
}