计算一个整数二进制位中1的个数
首先,我有点烦,这个办法其实还不错,我自己不想写,想转载一下,结果我看了好几个人的博客,都是这样的。
突然觉得很难受。后来在一个博主那里看到《剑指offer》提到过这个问题。哎,我还是自己写一下,记录一下吧。
int OneCount(int x) { int count = 0; while (x) { n &= (n - 1); count++; } return count; }
这个办法在数字不是很大的时候(不超过int的范围的时候),不用考虑正负数的问题,(负数的补码和原码不一样)