编程之美-2.1、求二进制数中1的个数

来源:互联网 发布:20网络用语什么意思 编辑:程序博客网 时间:2024/06/05 02:02
#include "stdafx.h"
//method 1
int count_01(char i)
{
int num=0;
while(i)
{
if(i%2==1)num++;
i=i/2;
}
return num;
}


int count_02(char i)
{
int num=0;
while(i)
{
num+=i&0x01;
i>>=1;
}
return num;
}


int count_03(char i)
{
int num=0;
while(i)
{
i&=(i-1);
num++;

}
return num;
}

int _tmain(int argc, _TCHAR* argv[])
{
char i;
scanf("%c",&i);
printf("%d",i);
int num=count_03(i);
printf("there is %d '1' in the byte",num);
return 0;

}

//在数量级不大的时候可以用空间换时间,比如这道题,可以用数组

原创粉丝点击