数一个数用二进制表示有几个1,为什么要定义成 unsigned char x ?? 试了一下int x 还真不行
把下面代码的x 宣言成 int x 还真得不出結果, 为什么,有哪位可以解释一下么程序代码:
int main(void){ unsigned char x = (unsigned char)-1; printf("%d\n",bitcount(x)); return 0; } int bitcount(unsigned char x) { int count; for (count = 0; x!=0; x>>=1) /* 比较最低位,用 & 来比较,每结束一个向右移一位 */ if ( x & 01 ) ++count; return count; }