(剑指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;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章