计算二进制中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/