//第一种
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;
}