int bitCount (int x, int n) {
//求和4位一组共8组
int m1 =0x11 | (0x11<<8);
int mask = m1 | (m1<<16);
int s = x & mask;
s += x>>1 & mask;
s += x>>2 & mask;
s += x>>3 & mask;
//将和组合在一起,combine
//combine high and low order sums
s = s+(s>>16);
//low order 16 bits now consists of 4 sums,
//split into two groups and sum
mask = 0xF | (0xF<<8);
s = (s & mask) + ((s >> 4) & mask);
return (s + (s>>8))&0x3F;// 代码实现
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交