javascript - '二进制数转 10 进制数'程序

标签 javascript

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

这个项目只是 4 个 12 岁的 child (我)的乐趣,所以,如果其他人有适合他们工作的东西,不要着急。无论如何,我发现问题在于,当您输入二进制数时,存储在 convertedNumQuery 中的数字以某种方式默认为 1,即使该数字为 0。我试过到处调试,但是也许这只是因为我是新手 >.<

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 行 console.log(convertedNumQuery[i]); 中的 convertedNumQuery 时,数组以全 1 的形式登录到控制台。

最佳答案

为什么不直接使用 parseInt转换:

params : (number,base)

console.log(parseInt(110101, 2))

关于javascript - '二进制数转 10 进制数'程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543936/

相关文章:

Javascript getElementById 行为奇怪

javascript - Google Apps 脚本返回正确的值 + 多个不需要的逗号

javascript - 可以在 session 中存储圆形对象吗?

javascript - 在基于 CSS 和 JavaScript 的图库模式中使用外部 .jpg 图像?

javascript - 如何测试 Chrome 扩展程序的 chrome.runtime.onInstalled?

c# - 我可以在 outclick 事件后进行文本框验证吗?

javascript - jQuery/Bootstrap 3 - 单击查找上一个同级

php - PHP 和 mySQL 的实时事件监听器

javascript - 像 web-app 这样的 twitter 中的 Sequelize 中的多对多 self 引用

Javascript 调用函数 - onclick 有效,而 onload 无效