把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.那么一个整数的二进制有多少个1,就可以进行多少次这样的操作。
另一种方法是每次右移动1位和1做与运算,但是要注意负数,因为负数最高位补1,永远除不尽??你可以试一试-1>>1,一直为-1哦!