(劍指offer)面試題15. 二進制中1的個數

題目

請實現一個函數,輸入一個整數,輸出該數二進制表示中 1 的個數。例如,把 9 表示成二進制是 1001,有 2 位是 1。因此,如果輸入 9,則該函數輸出 2。

思路

通過無符號移位操作(最高位是符號位)來逐位統計1的個數。

代碼

public static int hammingWeight(int n) {
      //n轉二進制
      int result = 0;
//      //然後計數
      while (n != 0){
        result += n & 0x1;
        n = n >>> 1; //無符號右移
      }
      return result;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章