【发布时间】:2014-07-01 09:14:50
【问题描述】:
从其他搜索中,我发现这个问题被称为“汉明权重”或“人口计数”。有这么多统计数据给出了很多答案? 我需要以简单的方式找到解决方案吗?复杂性不是什么大问题。 JavaScript 中有没有像 Java 的 Integer.bitCount 这样的内置函数?
我目前正在执行以下操作。
var binary = 3;
var original = binary;
var count = 0;
while(binary>0)
{
binary = binary >> 1 << 1;
if(original-binary==1)
count++;
original = binary >> 1;
binary = original;
}
有没有更好、更简单、更优雅的方法?
【问题讨论】:
-
如果它真的是一个字符串,
str.split('1').length,但那根本不是javascript,它是Java -
@adeneo 对不起,错误的细节。我需要对一个号码执行此操作。
-
然后是
numb.toString().split('1').length,tada! -
以上方法时间复杂度高吗?我应该更喜欢哪个?
标签: javascript binary