将二进制数组转换为相应的整数

时间:2016-10-31 13:29:24

标签: javascript binary bitwise-operators

如何将只有1和0的二进制数组转换为相应的数字?喜欢

var binArray  = [1, 0, 1, 1] ;
output = 11;

我知道我需要以某种方式使用按位运算符>> <<,但我不知道如何。

2 个答案:

答案 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#reduceleft shift operator <<

                     return
     r       a     dec     bin
------  ------  ------  ------
     1       0       2      10
     2       1       5     101
     5       1      11    1011

&#13;
&#13;
var binArray = [1, 0, 1, 1],
    output = binArray.reduce(function (r, a) {
        return (r << 1) | a;
    });

console.log(output);
&#13;
&#13;
&#13;

ES6

&#13;
&#13;
var binArray = [1, 0, 1, 1],
    output = binArray.reduce((r, a) => (r << 1) | a);

console.log(output);
&#13;
&#13;
&#13;