剑指offer--面试题10-整数的二进制中有多少个1
来源:互联网 发布:网络借贷备案信息披露 编辑:程序博客网 时间:2024/06/05 20:28
//normal solutionint numberOf1(int n){int count=0;int flag=1;while(flag){if(n&flag) count++;flag<<=1;}}//great solution//把一个整数减一,再和原来的整数与,会把最右边一个1变成0.那么一个整数的二进制有多少个1,//就会做多少次这样的运算int numberof1(int n){int count=0;while(n){n=n&(n-1);count++;}return;}int main(int argc, char* argv[]){printf("Hello World!\n");return 0;}
相关题目:
1.用一条语句判断一个整数是不是2的整数次方。如果是整数次方,它只有一位为1,按照上面的运算,如果减去1,再和自己做与运算,则为0,则只有一位为1.
2.输入两个整数M和N,计算需要改变M的二进制表示中的多少位,才能得到N。该计算可以分为两步,第一步求异或运算,第二步求异或运算的结果包含几个1.
举一反三:把一个整数减1之后与自身做与运算,相当于把最后一位为1 的位,变成为0.
0 0
- 剑指offer--面试题10-整数的二进制中有多少个1
- 求整数的二进制表达中有多少个1
- 计算一个整数的二进制中有多少个1
- 整数的二进制表示中有多少个1
- 整数的二进制表达中有多少个1
- LintCode-剑指Offer-(365)二进制中有多少个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】 面试题10: 二进制中1的个数
- 剑指offer-面试题10:二进制中1的个数
- 剑指Offer----面试题10:二进制中1的个数
- 【剑指offer】面试题10: 二进制中1的个数
- Datatable删除行的Delete和Remove方法
- ubuntu/linux下命令行安装jdk
- 148. Sort List
- 紫书_第八章_高效算法设计_8.3.2——循环日程表问题
- HDU2072 单词数(解法二)
- 剑指offer--面试题10-整数的二进制中有多少个1
- C#知识点详解
- 24、DOM的高级应用1-------表格的动态删除和添加行的操作
- 【网络】学习IO 多路复用 select
- RxJava observeOn()与subscribeOn()的关系
- LeetCode:Remove Invalid Parentheses
- 146. LRU Cache
- VS2015中STL源码解析1(霜之小刀)
- IPv6 地址格式