计算二进制中1的个数

相关题目:191. 位1的个数 - 力扣(LeetCode)

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

看题解时看到一种眼前一亮的方法:循环去掉最后一个1,计算循环次数。这种方法的核心在于如何高效去掉最后一个1,题解给出的方法是:n&n-1

如下图,n-1可以将n的最后一个1变为0,且将后面所有0变为1。将两数做按位与操作,则可高效去除最后一个1。

例子


计算二进制中1的个数
https://blog.loststar.tech/posts/34ac3997/
作者
loststar
发布于
2021年12月20日
许可协议