计算将一个十进制整数转换成二进制含多少个1
同为今天下午360的一道面试题。
通过模2判断最后一位是否为1,为1则COUNT++,然后除2(相当与将该数右移一位),循环;最终求出结果。
实现如下:(C实现)
#include<stdio.h>
void main()
{
int i,count=0;
i=15;
do
{
if((i%2)!=0) //判断末尾是否为1
{
count++; //末尾为1则count++
}
i=i/2; //i除2,相当于右移一位
}while(i>=1);
printf("1的个数为%d\n",count); //输出结果
}