给出统计一个字节中被置1的位的个数的函数,要求效率尽可能高
1 // 一个字节中置1的位数.cpp 2 3 #include "stdafx.h" 4 5 int bit1count(char x) 6 { 7 int count=0; 8 while(x) 9 { 10 x&=(x-1);//去掉最右边的1 11 count++; 12 } 13 return count; 14 } 15 16 void main() 17 { 18 int num=0; 19 char ch; 20 printf("input ch:\n"); 21 scanf("%d",&ch); 22 printf("ch=%d\n",ch); 23 num=bit1count(ch); 24 printf("%d\n",num); 25 }