HTML:
<input type="number" id="input" placeholder="Number.." onkeydown="javascript:
return event.keyCode === 69 ? false : true"/>
<div class="boxes">
<div class="decimalBox">
<p>Decimal:
<span id="decimalOutput"></span>
</p>
</div>
<div class="binaryBox">
<p>Binary:
<span id="binaryOutput"></span>
</p>
</div>
使用Javascript:
//global variables
var number = document.getElementById('input');
var decimalOutput = document.getElementById('decimalOutput');
var binaryOutput = document.getElementById('binaryOutput');
number.addEventListener("input", toBinary);
//Converting Decical to Binary by using independent division and taking the
modulus the number
function toBinary(x){
var result = [], i;
for(var i=number;i>0;i=parseInt(i/2)){
result.push(i%2);
}
var binary = result.reverse().join('');
//returns the result of the array and then reverses the order to create the
correct binary order.
decimalOutput.innerHTML = number.value;
binaryOutput.innerHTML = binary;
return binary;
}
我的问题是这个。一切正常,除了我能够显示 toBinary()函数中声明的二进制变量。它似乎抛出错误而不允许我实际使用该值以二进制形式显示当前输入,但是我使用参数测试了这个并且代码运行得很好。我只是需要帮助弄清楚为什么这个具体案例不起作用。
解决这个问题的正确方法是@titus建议:而不是在for循环中使用“var i = number”将其更改为值或数字。谢谢!