数据结构与算法面试题80道(28)
28.整数的二进制表示中1的个数
题目:输入一个整数,求该整数的二进制表达中有多少个1。
例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
分析:
这是一道很基本的考查位运算的面试题。
包括微软在内的很多公司都曾采用过这道题。
#include<iostream> #include<stdio.h> using namespace std; int howMachOne(int n){ int count=0; while(n){ if(n&1) count++; n>>=1; } return count; } int main(){ int n; while(~scanf("%d",&n)){ cout<<howMachOne(n)<<endl; } return 0; }