算法:追求时间和空间最优
输入一个正整型变量,求其二进制表示中"1"的个数
//Bit1Count
#include <stdio.h>
/*************************************************************
FileName : Bit1Count.c
FileFunc : 求一个数据,二进制表示中"1"的个数
Version : V0.1
Author : Sunrier
Date : 2012-05-18
Descp : 输入一个整型变量,求其二进制表示中"1"的个数
*************************************************************/
int CountBit( int );
int CountBit( int iValue)
{
int iTimes = 0 ;
while( iValue )
{
iValue &= (iValue-1);
iTimes++;
}
return iTimes;
}
int main(int argc,char *argv[])
{
int iValue;
int iBitNumber = 0;
scanf("%d",&iValue);
iBitNumber = CountBit(iValue);
printf("iValue = %d , iBitNumber = %d !\n",iValue,iBitNumber);
return 0;
}
[Sunrier@localhost src]$ ./countbit
78
iValue = 78 , iBitNumber = 4 !
[Sunrier@localhost src]$ ./countbit
168
iValue = 168 , iBitNumber = 3 !
[Sunrier@localhost src]$