求一个数据,二进制表示中"1"的个数

来源:互联网 发布:input的file js 编辑:程序博客网 时间:2024/05/17 04:26

 

算法:追求时间和空间最优 

 

输入一个正整型变量,求其二进制表示中"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]$

 

原创粉丝点击