【剑指offer-10】二进制中1的个数

tech2022-08-12  115

题目描述

请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。

题目解析

【分析】 一个整数减1与该整数进行与运算,则把该整数最右边一个1变成0,重复进行该操作,执行到该数为0时,执行的次数就是该整数二进制中包含1的数量 【代码实现】

public int hammingWeight(int n) { int count = 0; while (n != 0){ ++count; n=(n-1) & n; } return count; }
最新回复(0)