【剑指offer】题10:二进制中1的个数
2017-06-16 15:24
363 查看
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
常规解法:
利用n&(n-1)可去除n最右边的1:
常规解法:
int NumberOf1(int n) { int m = sizeof(n); m *= 8; int k(0); for (auto i = 0; i < m;++i) { if ((n>>i)&1) { k++; } } return k; }
利用n&(n-1)可去除n最右边的1:
int NumberOf1(int n) { int count(0); while (n) { count++; n = n&(n - 1); } return count; }
相关文章推荐
- 剑指Offer10:二进制中1的个数
- 剑指offer——面试题10:二进制中1的个数
- 剑指offer 10题 【位运算】二进制中1的个数
- 剑指offer之面试题10:二进制中1的个数
- 剑指Offer面试题10(Java版):二进制中的1的个数
- 剑指offer面试题10-二进制中1的个数
- 剑指offer10:二进制1的个数
- 剑指offer 面试题10 二进制中1的个数
- [剑指offer][面试题10]二进制中1的个数
- 剑指offer-10 二进制中1的个数
- 剑指offer-面试题10:二进制中1的个数
- 剑指Offer_面试题10_二进制中1的个数
- 剑指offer-面试题10-二进制中1的个数
- 剑指Offer面试题10:二进制中1的个数
- 剑指Offer-10-二进制中1的个数
- 剑指offer---二进制中1的个数(10)
- 【剑指offer】面试题10:二进制中1的个数
- 剑指Offer之二进制中1的个数(题10)
- 剑指Offer:面试题10 二进制中1的个数
- 【剑指Offer学习】【面试题10 :二进制中1 的个数】