javascript - “以 10 为底的二进制数”程序
问题描述
在我的 es6 编译器中,我正在研究一个将任何二进制数转换为 base-10 数的函数。基本上,1 和 0 都默认为 1。
这个项目只是 4 个 12 岁的孩子(我)的乐趣,所以,如果有其他人有工作要做,不要着急。无论如何,我发现问题在于,当您输入二进制数时,存储的数字以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。甚至更奇怪的是,当我查看convertedNumQuery
在第 15 行中console.log(convertedNumQuery[i]);
,该数组在控制台中记录为全 1。
解决方案
推荐阅读
- python - 希望在 pytest 输出中查看取消选择的测试列表及其节点 ID
- c++ - 在 C++ 线程中使用类成员
- javascript - JavaScript 函数在 HTML 页面上未正确触发
- http - 在http标头中发送参数是否安全
- css - 我为 stenciljs web-components 添加通用 css
- c - 在 C 中解析 INI 文件 - 如何存储部分及其键和值?
- php - 匹配 php 正则表达式中的实际美元符号
- java - 在 Arraylist 类中使用 .size() 时出现 NullPointerException
- scala - Scala spark:从数据集映射操作创建数据集列表
- c++ - 编译自动生成的文件而不将它们添加到 vcxproj