请编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数,并请给出该题的至少一个不同解法。 下面是我写的几个函数: int Test1NumofOne(unsigned char c) { int num=0; int i; for(i = 0; i < 8; i++) { if(c&0x01) num++; c = c>>1; } return num; } int Test2NumofOne(unsigned char c) { int num=0; int i; unsigned char t; for(i = 0; i < 8; i++) { t = 1; t <<= i; if(c&t) num++; } return num; } int Test3NumofOne(unsigned char c) { int num=0; int i; unsigned char t[]={1, 2, 4, 8, 16, 32, 64, 128}; for(i = 0; i < 8; i++) { if(c&t[i]) num++; } return num; }