1. 循环 求函数返回值,输入x=9999; int func ( x ) { int countx = 0; while ( x ) { countx ++; x = x&(x-1); } return countx; } 2. 直接相加 x = (x & 0x55555555) + ((x >> 1) & 0x55555555); // 相伶1位相加 x = (x & 0x33333333) + ((x >> 2) & 0x33333333); // 相伶2位相加 x = (x & 0x0F0F0F0F) + ((x >> 4) & 0x0F0F0F0F); // 相伶4位相加 x = (x & 0x00FF00FF) + ((x >> 8) & 0x00FF00FF); // 相伶8位相加 x = (x & 0x0000FFFF) + ((x >>16) & 0x0000FFFF); // 相伶16位相加