🏆个人主页:企鹅不叫的博客
🌈专栏
⭐️ 博主码云gitee链接:代码仓库地址
⚡若有帮助可以【关注+点赞+收藏】,大家一起进步!
💎一、题目
🏆1.题目描述
🏆2.原题链接
💎二、解题报告
🏆1.思路分析
🔑思路:
1.移位操作比较即可
2.由n = n&(n-1),直到n == 0,计算出1的个数
🏆2.代码详解
//32位移位计数
int hammingWeight(uint32_t n) {
int counst = 0;
for(int i = 0; i < 32; ++i){
if(n & ((unsigned int)1 << i)){
counst++;
}
}
return counst;
}
//n = n&(n-1)计数
int hammingWeight(uint32_t n){
int counst = 0;
while(n){
n = n&(n-1);
counst++;
}
return counst;
}