【发布时间】:2021-12-30 11:07:00
【问题描述】:
我正在尝试制作一个能够进行十进制到二进制和二进制到十进制转换的程序。
我在处理代码的二进制到十进制部分时遇到问题。请原谅我,因为我知道编码很不完整,但我不知道哪里出错了。
目前,我在计算字段中得到部分正确的输出(例如,“(2^0) 的值中有 1”和“(2^1) 的值中有 2”)。
但是,当我输入 11 作为十进制时,计算字段会重复代码两次 (例如,“(2^0) 的值中有一个 1”,“(2^1) 的值中有一个 2”,“(2^0) 的值中有一个 1” , "(2^1) 的值中有一个 2")。
显然,每个数字应该只给出一次这些值。
另外,实际二进制数的输出字段也不正确,并且一些变量没有被使用/不需要,但我一直在尝试解决重复值的问题,然后再进行处理。
任何帮助将不胜感激!
function convertByArray(bval) {
var rB = new Array();
var outstr = "";
var p, t, a, o;
o = 0;
for(var i=0; i<bval.length; i++) {
var b = bval.charCodeAt(i);
t = 2;
p = i;
a = t ** p;
if(a === t ** p) {
outstr += a;
}
var bV = b;
$("txtCalc").value += "There is a " + a + " in the value " + "(" + t + "^" + p + ")" + "\n";
o += 1;
b = bV;
$("txtOut").value = outstr;
}
}
【问题讨论】:
-
注意
const a = 35; console.log(a.toString(2));将把35打印为二进制
标签: javascript binary decimal