其无符号整数参数的二进制表示中出现的次数。
例如,数字 183 是 0b10110111,11 出现了 3 次。
有人可以解释或详细说明(举例)这意味着什么吗?
当然。从 0 开始计数。查看每一对连续的位。如果他们是 11,则增加计数。如果他们不是,不要。
在您的示例 10110111 中,连续对是
10 01 11 10 01 11 11
其中三个是 11,所以返回 3。
如果您需要实现这一点,最简单的方法可能是查看 2 个最低有效位以查看它们是否为 11。如果是,请增加计数器。然后将整数右移一位并循环。当您将所有 1 移出时,循环可以停止,因此数字为 0。此时计数器将保存答案。所有这些都可以在 3 或 4 行代码中完成,您真的应该自己编写这些代码。
它计算在无符号整数中设置了多少位(有重叠)。
从技术上讲,对于参数的每个第 i 位0 <= i <= 30
,如果设置了 -thi
位并且设置(i+1)
了 -th 位,那么您有一对。数一数,你就完成了。