请编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数。
unsigned int TestAsOne0(char log) { int i; unsigned int num = 0, val; for (i = 0; i < 8; i++) { val = log >> i; // 将 log 右移 i 位 val &= 0x01; // 将结果与 0x01(二进制:00000001)相与,保留最低位 if (val) num++; // 如果最低位为1,增加计数 } return num; // 返回值为值为1的位的数量 }