var y= '110001'.split("").reverse();
var sum = 0;
for (var i = 0; i < y.length; i++) {
sum += (y[i] * Math.pow(2, i));
}
console.log(sum);
答案 0 :(得分:4)
这样做最简单
console.log(Array.from('110001').reduce((prev, cur) => prev << 1 | cur));
&#13;
<<
是left-bitshift运算符,在这里基本上乘以2。
Array.from
(如果可用)优于split
。在这种情况下,它并不重要,但split
会因代理对字符而失败,例如,Array.from
会正确处理它们。这也可以写成[...'110001']
,最终是同样的事情。
当然,你也可以说
parseInt('110001', 2)
答案 1 :(得分:1)
检查此代码段
var binary = '110001'.split("").reverse();
var sum = binary.reduce(function(previous, current, index) {
previous = previous + (current * Math.pow(2, index));
return previous;
}, 0);
console.log(sum);
&#13;
希望有所帮助