首先这个&是按位与,专对二进制来的。每一次a=a&(a-1);就统计一下1,。说一下我的理解,比如说10011,a-1等于10010,与之后,就干掉了一个1,结果就是10010。也就是每减一次,就干掉一个1。
while(a!0)
a=a&(a-1);//的次数
首先这个&是按位与,专对二进制来的。每一次a=a&(a-1);就统计一下1,。说一下我的理解,比如说10011,a-1等于10010,与之后,就干掉了一个1,结果就是10010。也就是每减一次,就干掉一个1。
while(a!0)
a=a&(a-1);//的次数