一道笔试题,计算1byte数据有多少位被置1。
- #include <stdio.h>
-
#include <assert.h>
-
#include <malloc.h>
-
-
/*
-
** 函数名:find_1_inbyte
-
** 输入参数:char a:1byte数据
-
** 返回值:char count:1的位数
-
** 功能:计算1byte数据有多少位被置1
-
*/
-
char find_1_inbyte(char a)
-
{
-
char count = 0;
-
char i=0;
-
-
for(i=0;i<8;i++)
-
{
-
if(a & 0x80) //获取最高位
-
count++;
-
a=a<<1;//左移1位
-
}
-
return count;
-
}
-
-
int main()
-
{
-
char i = find_1_inbyte(56);
-
printf("%d \n",i);
-
return 0;
-
}