【发布时间】:2021-01-03 21:34:07
【问题描述】:
我一直在尝试解决此代码的问题,但没有任何想法。预期的结果如下...
- 我在文本框中输入了一个不超过 6 位的二进制数。
- 我按下“转换”按钮。
- 短段落将显示二进制数的十进制等值。
var BinIN = document.getElementById("binaryInput").value;
let DecOUT = 0;
function compute() {
if ((BinIN.charAt(0) = 1)) {
DecOUT += Math.pow(2, BinIN.length - 1);
}
if ((BinIN.charAt(1) = 1)) {
DecOUT += Math.pow(2, BinIN.length - 2);
}
if ((BinIN.charAt(2) = 1)) {
DecOUT += Math.pow(2, BinIN.length - 3);
}
if ((BinIN.charAt(3) = 1)) {
DecOUT += Math.pow(2, BinIN.length - 4);
}
if ((BinIN.charAt(4) = 1)) {
DecOUT += Math.pow(2, BinIN.length - 5);
}
if ((BinIN.charAt(5) = 1)) {
DecOUT += Math.pow(2, BinIN.length - 6);
}
if ((BinIN.charAt(6) = 1)) {
DecOUT += Math.pow(2, BinIN.length - 7);
}
if ((BinIN.charAt(7) = 1)) {
DecOUT += Math.pow(2, BinIN.length - 8);
}
document.getElementById("DecimalOutput").innerHTML = DecOUT;
}
<label for="binaryInput">Binary</label><br />
<input type="text" id="binaryInput" name="binaryInput" value="0" /><br />
<button onclick="compute()">Convert</button>
<p id="DecimalOutput"></p>
【问题讨论】:
-
您的
if()都没有做您认为他们应该做的事情,因为=不是比较运算符...使用=== -
除了你的算法有缺陷
-
在上面的代码中,您应该将
=运算符更改为==并将值1 更改为“1”
标签: javascript html binary