首页 > 试题广场 >

二进制转换

[编程题]二进制转换
  • 热度指数:35842 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定二进制字符串,将其换算成对应的十进制数字
示例1

输入

'11000000'

输出

192
function base10(str) {
    var arr = str.split("");
    var result = 0;
    for(var i = arr.length-1;i>=0;i--){
        result = result + (Math.pow(2,i))*arr[arr.length-1-i];
    }
    return result;
}
我一开始憨憨的写成了(Math.pow(2,i))*arr[i],半天才反应过来
发表于 2021-07-08 18:55:12 回复(0)
function base10(str) {
 return [...str].map((item, index) => (2 ** (str.length - 1 - index)) * item).reduce((pre, cur) => pre + cur);
}
就很奇怪,这串代码我在编译器里明明运行正常,可是到了这里直接就输出null


编辑于 2021-05-04 20:37:02 回复(0)
function base10(str) {
     return parseInt(str,2)
}
parseInt(num,n)实现n进制转10进制
发表于 2021-04-01 12:18:14 回复(0)

// reverse
function base10(str) {
    return str.split('').reverse().reduce(function(total,value,index){
        return total += (value << (index));
    },0);
}

发表于 2021-03-03 17:57:31 回复(0)
function base10(str) {
    return parseInt(str, 2);
}

发表于 2019-09-03 19:50:55 回复(0)
好像不支持双乘号表示幂,比如 2 ** m,只能用Math.pow(2, m)
发表于 2019-03-17 17:48:04 回复(0)

直接调用parseInt函数,第二个参数为radix


function base10(str) {
    return parseInt(str, 2)
}
发表于 2018-12-01 10:57:35 回复(0)
function base10(str) {
	var result;
	return result=parseInt(str,2);
	// parseInt(String,radix);
        // Number.toString(2);
}

发表于 2016-07-16 22:22:14 回复(0)