问题很简单,给定一个 8 位整型,要求写程序计算这个数的二进制表示中 1 的个数,要求算法的执行效率尽可能的高。先来看看样章上给出的几个算法:解法一,每次除二,看是否为奇数,是的话就累计加一,最后这个结果就是二进制表示中 1 的个数。解法二,同样用到一个循环,只是里面的操作用位移操作简化了。int Count(int v){ int num = 0; while (v) { num += v & 0x01; v >>= 1; } return num;}解法三,用到一个巧妙的与操作,v & (v - 1) 每次能消去二进制表示中最后一位 1,……