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