二进制中1的个数
2014-04-14 10:12
183 查看
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。
思路:运用”位运算“
代码:
#include<iostream>
using namespace std;
int NumberOf1(int n)
{
int count=0;
unsigned int flag=1;
while(flag)
{
if(n&flag)
count++;
flag=flag<<1;
}
return count;
}
int main()
{
int n;
cout<<"please enter a int:";
cin>>n;
cout<<n<<" has "<<NumberOf1(n)<<" one";
cout<<endl;
return 0;
}
扩展:以上算法复杂度与整数的位数有关。如果你分析,会发现以下结论:如果把一个整数减去1,再和原整合做与运算,会把该整数最右边一个1变为0.
reference:剑指Offer(何海涛著)
思路:运用”位运算“
代码:
#include<iostream>
using namespace std;
int NumberOf1(int n)
{
int count=0;
unsigned int flag=1;
while(flag)
{
if(n&flag)
count++;
flag=flag<<1;
}
return count;
}
int main()
{
int n;
cout<<"please enter a int:";
cin>>n;
cout<<n<<" has "<<NumberOf1(n)<<" one";
cout<<endl;
return 0;
}
扩展:以上算法复杂度与整数的位数有关。如果你分析,会发现以下结论:如果把一个整数减去1,再和原整合做与运算,会把该整数最右边一个1变为0.
reference:剑指Offer(何海涛著)
相关文章推荐
- 计算整数的二进制中包含1的数量
- 第十五周项目一:用二进制文件处理学生成绩
- java小程序:将十进制数用二进制表示出来
- mips 纯二进制反汇编(bin文件)
- 用二进制文件处理学生成绩
- 洛谷 P2104 二进制
- grep时提示:Binary file (standard input) matches grep只递归匹配文本文件,不匹配二进制文件中
- 以二进制方式读取图片保存到string
- 面试题10. 二进制中1的个数
- 【100题】第二十八 整数的二进制表示中1的个数
- string来存放二进制数据
- 将十进制数字转换为二进制
- [开源]KJFramework.Message 智能二进制消息框架 -- 对于数组的极致性优化
- 【c语言】将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数
- C#实现把图片转换成二进制以及把二进制转换成图片的方法示例
- hdu 2844 Coins(多重背包+二进制优化)
- 【日常学习】【二进制】codevs3295 落单的数题解
- 二进制1的个数
- 哈理工oj 1385-Leyni, LOLI and Toasts II解题报告-多重背包的二进制解法
- Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换