算法:二进制转十进制

解法一

按权相加

1
2
3
4
5
6
7
function toDecimal(str){
var res = 0;
for(var i=str.length-1;i>=0;i--){
res = str[i]==='1' ? Math.pow(2,str.length-1-i) + res : res;
}
return res;
}

1
2
3
4
5
6
7
8
9
function toDecimal(str){
var res = 0;
var temp = 1;
for(var i=str.length-1;i>=0;i--){
res = str[i]==='1' ? res + temp : res;
temp *= 2;
}
return res;
}

解法二

parseInt 的第二个参数表示要解析的数字的基数

1
2
3
function toDecimal(str){
return parseInt(str,2);
}

-------------本文结束 感谢您的阅读-------------