如何将只有1和0的二进制数组转换为相应的数字?喜欢
var binArray = [1, 0, 1, 1] ;
output = 11;
我知道我需要以某种方式使用按位运算符>>
<<
,但我不知道如何。
答案 0 :(得分:3)
您可以使用parseInt()
以及base或radix参数,如下所示:
> var binArray = [1, 0, 1, 1]
> binArray.join('')
"1011"
> parseInt(binArray.join(''), 2)
11
> parseInt("101", 2)
5
答案 1 :(得分:2)
您可以使用Array#reduce
和left shift operator <<
。
return
r a dec bin
------ ------ ------ ------
1 0 2 10
2 1 5 101
5 1 11 1011
var binArray = [1, 0, 1, 1],
output = binArray.reduce(function (r, a) {
return (r << 1) | a;
});
console.log(output);
&#13;
ES6
var binArray = [1, 0, 1, 1],
output = binArray.reduce((r, a) => (r << 1) | a);
console.log(output);
&#13;