how to convert binary string to decimal?

后端 未结 9 2254
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-28 04:41

I want to convert binary string in to digit E.g

var binary = \"1101000\" // code for 104
var digit = binary.toString(10); // Convert String or Digit (But it          


        
9条回答
  •  广开言路
    2020-11-28 04:53

    Slightly modified conventional binary conversion algorithm utilizing some more ES6 syntax and auto-features:

    1. Convert binary sequence string to Array (assuming it wasnt already passed as array)

    2. Reverse sequence to force 0 index to start at right-most binary digit as binary is calculated right-left

    3. 'reduce' Array function traverses array, performing summation of (2^index) per binary digit [only if binary digit === 1] (0 digit always yields 0)

    NOTE: Binary conversion formula:

    {where d=binary digit, i=array index, n=array length-1 (starting from right)}

    n
    ∑ (d * 2^i)
    i=0

    let decimal = Array.from(binaryString).reverse().reduce((total, val, index)=>val==="1"?total + 2**index:total, 0);  
    
    console.log(`Converted BINARY sequence (${binaryString}) to DECIMAL (${decimal}).`);
    

提交回复
热议问题