整数的二进制表示中1的个数(28)
来源:互联网 发布:网络推广需要多少钱 编辑:程序博客网 时间:2024/04/30 03:33
28.整数的二进制表示中1的个数
题目:输入一个整数,求该整数的二进制表达中有多少个1。
例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
分析:
这是一道很基本的考查位运算的面试题。
包括微软在内的很多公司都曾采用过这道题。
/* Name: Copyright: Author: Date: 16-06-11 20:35 Description: 整数的二进制表示中1的个数(运算)题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。分析:这是一道很基本的考查位运算的面试题。包括微软在内的很多公司都曾采用过这道题。*/#include<iostream>#include<iomanip>using namespace std;int cfun(unsigned int x,int &sum)// 如果定义成 int 会出错 { sum=0; while(x) { ++sum; x&=(x-1); } return true;}int main(){ int sum; int x=0xffffffff; cfun(x,sum); cout<<sum<<'\n'; system("pause"); return 0;}
分析:变量x代表要测试的整数,函数cfun中的变量为unsigned int,这是一个潜在的转换,将负数看成无符号整数。算法很巧妙,仔细想想,确实能正确计算出来。
- 整数的二进制表示中1的个数(28)
- 整数二进制表示中1的个数
- 整数二进制表示中1的个数
- 整数二进制表示中1的个数
- 整数二进制表示中1的个数
- 整数二进制表示中1的个数
- 整数二进制表示中1的个数
- 28、整数的二进制表示中1的个数
- 100-28- 整数的二进制表示中1的个数
- 28 整数的二进制表示中1的个数
- 微软100题(28)整数的二进制表示中1的个数
- 整数的二进制表示中1 的个数
- 整数的二进制表示中1的个数
- 28.整数的二进制表示中1 的个数
- 统计整数的二进制表示中1的个数
- 28.整数的二进制表示中1 的个数
- 整数的二进制表示中1的个数
- 整数的二进制表示中1的个数
- Installing apache on RHEL
- Some jar(v4 support, ActionBarSherlock and etc.) import error in Android Studio
- N皇后问题
- 从zero起☞Python
- VS2010中的调试技巧
- 整数的二进制表示中1的个数(28)
- vs2010:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?
- C++空类有哪些成员函数
- sqlite的使用
- Set的使用
- HBase的一些理解
- C语言中易错的优先级
- SqlDataAdapter的易错用法
- WinDbg配置和使用基础