如何用C语言写一个程序实现输入一个字节的数据,并能查看有多少个bit被置1?
在此之前我们要弄清楚几个概念:
什么是置1?一个字节有多少位?
所谓的置1就是在二进制中位数是0还是1,其次一个字节的大小是8个bit
代码如下:
int fun(unsigned bit){
int i,k; //定义一个i作为循坏一个字节的变量;定义一个k记录有几个1被置位了;
for(i=0;i<8;i++) //循环8次
if((bit>>i)& 1) //如果bit右移与上1成立(置位1)
k++; //则k++
return k;
}
int main(void){
unsigned bit = 0;
printf("plese input one char");
scanf("%d",&bit);
printf("the char has %d bit had been set 1",fun(bit));
return 0;
}