首先這個&是按位與,專對二進制來的。每一次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);//的次數