(剑指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;
    }
原创文章 143 获赞 2033 访问量 38万+

猜你喜欢

转载自blog.csdn.net/JAck_chen0309/article/details/105898171