首页 > 试题广场 >

二进制转换

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

输入

'11000000'

输出

192
    function base10(str) {
      str=str+''
       num=str.split('').reverse()
    //    for(i=0;i<num.length;i++){
    //      total=total+num[i]*Math.pow(2,i)
    // }  
  return  num.reduce((total,item,index)=>{
      return total+parseInt(item)*Math.pow(2,index)
    },0)    
    }
发表于 2023-06-01 11:18:30 回复(0)
function base10(str) {
    let arr = str.split('').reverse()
    let sum = arr.reduce((n, x, i) => n + x*Math.pow(2, i),0)
    return sum
}
发表于 2023-03-06 22:38:41 回复(0)
优雅简洁
function base10(str) {
            return parseInt(str,2)
}
发表于 2022-11-17 00:15:19 回复(0)
function base10(str) {
    var arr = str.split("")
            var cout = 1
            let sum = 0
            for (let i = arr.length - 1; i >= 0; i--) {
                if(arr[i]==="1") sum += cout
                cout = cout *2
            }
            return sum
}
发表于 2022-10-29 21:16:32 回复(0)
function base10(str) {
    return parseInt(str,2)
}
发表于 2022-10-26 09:27:09 回复(0)
function base10(str) {
    let s = 0
    for (let i = 0; i < str.length; i++) {
        let j = str.charAt(i)
        if (j == 1) {
            s += Math.pow(2, str.length - i - 1)
        }
    }
    return s
}

发表于 2022-06-25 16:24:01 回复(0)
        //方法一
        function base10(str) {
            return parseInt(str, 2)
        }
        //方法二 网站通过不了
        function base10(str) {
            let arr = str.split('').reverse()
            let sum = 0
            for (let i = 1; i < arr.length; i++) {
                sum += Number(arr[i]) * (2 ** i)
            }
            return sum
        }
        //方法三
        function base10(str) {
            let arr = str.split('').reverse()
            let sum = 0
            for (let i = 1; i < arr.length; i++) {
                sum += Number(arr[i]) * (Math.pow(2, i))
            }
            return sum
        }
发表于 2022-04-20 21:52:22 回复(1)
        function base10(str) {
            let sum = 0;
            for(var i = str.length - 1 ; i >= 0 ; i--){
                sum += (str[i] * 1) * Math.pow(2,str.length - 1 -i)
            }
            return sum;
        }
发表于 2022-04-13 17:02:21 回复(0)
function base10(str) {
  let sum=0;
    for(let i=0;i<str.length;i++){
        sum=sum*2+Number(str[i]);   
        console.log(sum);
    }
    return sum;
}

发表于 2022-03-18 15:31:42 回复(0)
function base10(str) {
    var num = 0;
    Array.from(str).reverse().forEach((item,index)=>{
        if(item==1){
            num +=Math.pow(2,index);
        }
    })
    return num;
}

发表于 2022-02-15 17:51:51 回复(0)
function base10(str) {
let sum = 0
  for(let i in str) {
    if (str[i] == 1) {
      sum += Math.pow(2, (str.length - 1 - i))
    }
  }
  return sum
}
发表于 2022-01-17 16:58:09 回复(0)
function base10(str) {
var arr=str.split('').map(function(item,index){
    return Math.pow(2,str.length-1-index)*item;
})
return arr.reduce((previous,current)=>{
    return previous+current;
})
}
发表于 2021-12-25 18:01:20 回复(0)
function base10(str) {
   let arr = str.split('')
            console.log(arr);
            const res = arr.reduce((acc, cur, index, arr) => {
                if (Number(cur) !== 0) {
                    acc += Math.pow(2, arr.length - index - 1)
                }
                return acc
            }, 0)
         return res
}
发表于 2021-09-26 20:37:14 回复(0)
function base10(str) {
    if(parseInt) return parseInt(str, 2)
    
    let result = 0
    for (let i = 0; i < str.length; i++) {
        result += (+str[i]) * Math.pow(2, str.length - i - 1)
    }
    return result
}

发表于 2021-09-10 13:35:19 回复(0)
return parseInt(str, 2);

发表于 2021-08-17 11:57:58 回复(0)

不知道parseInt()还能那样用。。

function base10(str) {
    var sum = 0;
    for (var i = 0; i < str.length; i++) {
        if (str.substr(i, 1) == '1') {
            sum += Math.pow(2, str.length-1-i);
        }
    }
    return sum;
}
发表于 2021-08-15 14:56:21 回复(0)
function base10(str) {
    // 使用parseInt
    return parseInt(str, 2);
/*
    // 二进制原理计算实现转换
    let decimal = 0;
    for(let i = 0; i < str.length; i++) {
        decimal += str[i]*Math.pow(2,str.length-i-1);
    }
    return decimal;

    // 使用Number() 方法
    return Number("0b"+str);
*/
}


发表于 2021-08-09 20:09:27 回复(0)