很多方法,详细见编程之美p119,比较不容易想到的是查表法。
这里实现一个移位法,实现的过程中,没有使用if判断比较有价值,效率更高。
#include <stdio.h>
int main(int argc, char** argv) {
char var = 7;
int counter = 0;
while (var) {
counter += (var & 0x1);
var >>= 1;
}
printf("the number of 1 is: %d\n", counter);
}