代码实现如下:
#include <stdio.h>
int func(unsigned char byte);
int main()
{
int ret,byte;
printf("输入1个字节大小以内的数:");
scanf("%d",&byte);
ret = func(byte);
printf("%p中1的个数是:%d\n",byte,ret);
return 0;
}
int func(unsigned char byte)
{
int i,count = 0;
for(i=0;i<8;i++)
{
//从最高位开始判断,直至最低位。
if(byte & (0x80>>i)) count++;
}
return count; //返回字节中1的个数
}
程序运行结果: