2016-10-31 4 views
1

1と0のみを持つ2進数の配列を対応する数値に変換するにはどうすればよいですか?2進数の配列を対応する整数に変換する

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

のように私は私が何とかビット演算子>><<を使用する必要が知っているが、私はありませんどのように行います。

答えて

3

あなたはこのようにベースまたは基数の引数を伴って含むparseInt()を使用することができます。

> var binArray = [1, 0, 1, 1] 
> binArray.join('') 
"1011" 
> parseInt(binArray.join(''), 2) 
11 
> parseInt("101", 2) 
5 
2

あなたがArray#reduceleft 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);

ES6

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

 
console.log(output);

+1

FWIW、あなたが初期値として '0'渡す必要はありません、あなたはそれを省略することができます。 –

+0

ありがとう、何を意味するのか説明できますか(r << 1)| a? –

+0

これは 'r 'の値を1ビット左にシフトします。つまり、値は2を乗算した後、ビットごとにまたは' a'で実行します。 –

関連する問題