方法一:
比较暴力的方法(通过将二进制右移获得):
int _Count(int x) { int cnt = 0; while(x) { cnt += x&1; x >>= 1; } return cnt; }
方法二:
通过这个数与比他小1的数相与得到:(很神奇的一个方法,手动写几个例子就可以看出来了,不过要自己想的话,还是比较费力的)
int _Count(int x) { int cnt = 0; while(x) { x &= (x-1); cnt++; } return cnt; }