整數的二進制中1的個數

給定一個整數,求它的二進制表示中有多少個1。

利用位運算,使用n與n-1的按位與,其結果恰好去掉了n最低位的1,所以可以得到一個時間只與1的數量有關的算法。

 

  1. int countOne(int n) 
  2.  { 
  3.      int count=0; 
  4.      while(n!=0) 
  5.      { 
  6.          n&=n-1; 
  7.          count++; 
  8.      } 
  9.      return count; 
  10.  } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章