Я просто делаю очень простую программу для преобразования двоичных чисел в десятичные и наоборот. Выполняя десятичное преобразование в двоичное число, я понял, что сталкивался с странной ошибкой, когда пытаюсь добавить небольшое число к очень большому числу. Например, я передал бы свой ввод программы 220002 в виде десятичного числа, и он преобразует это число в двоичный номер 110101101101100020. При отладке я понял, что в самом конце он сделал 110101101101100000 + 10, а результат был 110101101101100020.Имея проблему с большим целым добавлением в JavaScript
Я так смущен, почему это произошло. Я не уверен, помощь будет оценена. Он также делал это с меньшими числами, например, иногда он делал бы большое число в двоичной форме + 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);
}
})