面试题10:求二进制中1的个数
来源:互联网 发布:如何查看域名劫持 编辑:程序博客网 时间:2024/06/10 13:35
题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
思路:可以使用位运算的与&运算,只有1&1=1,其他情况都为0,所以可以设置一个flag初始为1,如果是8位的,二进制位0000 00001,让N与flag做与运算,判断结果是否为1,为1计数,不为1,将flag左移一位,变为0000 0010,继续判断N的下一位。
#include <iostream>using namespace std;int NumberOfOne(int n){int count=0;unsigned int flag=1;while(flag){if(n&flag){count++;}flag=flag<<1;//flag左移一位,用来判断n的下一位是否为1}return count;}int main(){int num=-10;cout<<NumberOfOne(0)<<endl;return 0;}
0 0
- 面试题10:求二进制中1的个数
- 面试题求一个整数中二进制1的个数
- 面试题---二进制中1的个数
- 面试题10:二进制中1的个数
- 面试题10:二进制中1的个数
- [剑指offer][面试题10]二进制中1的个数
- 《剑指offer》面试题10二进制中1的个数
- 【剑指offer】面试题10:二进制中1的个数
- 【剑指offer】面试题10:二进制中1的个数
- 剑指offer 面试题10 二进制中1的个数
- 剑指Offer:面试题10 二进制中1的个数
- 面试题10 二进制中1的个数
- 面试题10:二进制中1的个数
- 面试题10-二进制中1的个数
- 面试题10:二进制中1的个数
- 面试题10二进制中1的个数
- 《剑指Offer》面试题10:二进制中1的个数
- 剑指offer-面试题10-二进制中1的个数
- 使用Busybox制作根文件系统
- 2.3-6
- 【scikit-learn】如何进行模型参数的选择
- 面试题9:斐波拉契数列
- CT鸡的第一次
- 面试题10:求二进制中1的个数
- Android 记录1 自定义View
- 使用MySQL图形化工具Navicat创建表
- HDU 1481 树的性质(神坑)
- Java利用Zxing生成二维码
- Maven入门指南⑤:使用Nexus搭建Maven私服
- 2.3-7
- Android 常用 adb 命令总结
- JavaScript自学第4讲:JavaScript运算符介绍