“二进制数以10为底的数字”程序

时间:2019-02-05 22:19:01

标签: javascript

在我的es6编译器中,我正在研究一个将任何二进制数转换为以10为底的数字的函数。基本上,1和0都默认为1。

这个项目仅是4个12岁孩子的乐趣(我),因此,如果有人需要他们的工作,就不要着急。无论如何,我发现问题在于以下事实:当您输入二进制数时,即使数字为0,存储在convertedNumQuery中的数字也默认为1。我已经尝试了到处调试,但也许只是因为我是newb>。<< / p>

var numQuery = prompt("Enter a binary number to convert to base-10! Don't leave the \"0b\" in there.").split("");
var binaryChart = [1];
var convertedNumQuery = numQuery.map(Number);
var base10 = 0;
console.log(convertedNumQuery+ "\n");
for (var i = 0; i < (numQuery.length - 1); i++) {
    binaryChart.unshift(binaryChart[0]*2);
    console.log(binaryChart);
}
console.log(convertedNumQuery);
console.log("\n convertedNumQuery is array: " + Array.isArray(convertedNumQuery));
for (var i = 0; i < convertedNumQuery.length; i++ ) {
    if (convertedNumQuery[i] = 1) {
        base10 += binaryChart[i];
        console.log(convertedNumQuery[i]);
    }
}
console.log(base10);

说我要转换的二进制数是101010或42。预期结果42应该存储在base10中,但最终发生的是binaryChart中的每个数字是添加后得到63。甚至更陌生,当我在第15行convertedNumQuery中查看console.log(convertedNumQuery[i]);时,该数组在控制台中被记录为全1。

1 个答案:

答案 0 :(得分:4)

为什么不使用parseInt进行转换:

params : (number,base)

console.log(parseInt(110101, 2))