(剑指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;
    }
展开阅读全文
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值