我只是制作一个非常简单的程序将二进制数转换为十进制数,反之亦然。在进行十进制到二进制转换时,我意识到当我尝试将一个小数字添加到一个非常大的数字时,我遇到了一个奇怪的错误。例如,我将我的程序输入220002作为小数,它会将该数字转换为二进制数110101101101100020.在调试时,我意识到最后它做了110101101101100000 + 10,结果是110101101101100020。
我很困惑为什么会这样。我不太确定,帮助将不胜感激。它也用较小的数字来做,例如有时它会以二进制形式执行大量数字+ 1它根本不会改变二进制数。如果它有帮助,这是我的代码。$("#convertDecimalBinary").on("click", function() {
var decimal = $("#inputDecimal").val();
console.log(!isNaN(decimal));
if(!isNaN(decimal)) {
var binary = 0;
var multiplier = 1;
var num = 1;
while(num * 2 <= decimal) {
num *= 2;
multiplier *= 10;
}
while(decimal > 0) {
if(decimal - num >= 0) {
decimal -= num;
binary += multiplier;
}
num /= 2;
multiplier /= 10;
}
$("#inputBinary").val(binary);
}
})