您的位置:首页 > 运维架构 > Linux

一个字节中被置 1 的位的个数-经典算法

2013-12-09 17:21 429 查看
//第一种

unsigned int CountOneInChar_1(const char log)
{
unsigned int num = 0, val;
int i;
for(i = 0; i < 8; i++)
{
val = log >> i; //移位
val &= 0x01; //与1 相与
if(val==1)
num++;
}
return num;
}

//第二种

unsigned int CountOneInChar_2(const char ch)
{
unsigned int num = 0, val;
for(i = 0;i < 8;i++)
{
val = ch>>i;
val &= 0x01;//与1 相与
num +=val;
}
return num;
}

//第三种

unsigned int CountOneInChar_3(const char ch)
{
unsigned int num = 0,val = ch;
while(val != 0)
{
num++;
val = val&(val-1);
}
return num;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux c语言 函数
相关文章推荐