个人主页:企鹅不叫的博客
专栏
- C语言初阶和进阶
- C项目
- Leetcode刷题
- 初阶数据结构与算法
- C++初阶和进阶
⭐️ 博主码云gitee链接:代码仓库地址
⚡若有帮助可以【关注+点赞+收藏】,大家一起进步!
文章目录
- 一、题目
- 1.题目描述
- 2.原题链接
- 二、解题报告
- 1.思路分析
- 2.代码详解
一、题目 1.题目描述
2.原题链接
二、解题报告 1.思路分析剑指Offer 15.二进制中1的个数
2.代码详解思路:
1.移位操作比较即可
2.由n = n&(n-1),直到n == 0,计算出1的个数
//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;
}



