计算将一个十进制整数转换成二进制含多少个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);   //输出结果

}

 

 

posted @ 2012-10-25 15:52  小肚男  阅读(652)  评论(1编辑  收藏  举报