题目:输入一个整数,求该整数的二进制表达中有多少个1。
例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
分析:
这是一道很基本的考查位运算的面试题。
包括微软在内的很多公司都曾采用过这道题。
#include <iostream>
int sumone(int n);
int main()
{
int a=sumone(15);
return 0;
}
int sumone(int n)
{
int temp = n ;
int sum = 0;
while (temp != 0)
{
if (temp%2 == 1)
sum = sum +1 ;
temp = temp/2;
}
return sum;
}
本文介绍了一个简单的算法来计算任意整数在二进制表示中1的个数。通过使用位运算的方式逐步将整数转换并检查每一位是否为1,最终累加得到1的总数。
1万+

被折叠的 条评论
为什么被折叠?



