原题是:“对于一个字节(8bit)的无符号整型变量,求其二进制表示中1的个数,要求算法的执行效率尽可能的高” 法一:#include <iostream> using namespace std; int main(void) { unsigned int a,temp; int countnum = 0; cin>>a; temp = a; while(temp!=0) { //每次去掉最右边的1 temp = temp&(temp-1); countnum++; } cout<<countnum<<endl; return 0; } 法二:因为只有1字节的无符号整型变量,可以申请num[256]的数组,记录0—255每个数中1的个数