0
私は、バイナリ数値を10進数に変換する非常に簡単なプログラムを作成しています。小数点から2進数への変換では、非常に大きな数値に小さな数値を追加しようとすると、私が奇妙なエラーを起こしていることに気付きました。たとえば、私はプログラムの入力220002を小数点として与え、その数値を二進数110101101101100020に変換します。これをデバッグすると、最後に110101101101100000 + 10を実行し、その結果は110101101101100020でした。JavaScriptで大きな整数の追加に問題がある
なぜこれが起こったのか、私は混乱しています。私は本当に分かりません、助けていただければ幸いです。また、バイナリ形式で大きな数を行う場合もあれば、バイナリ数をまったく変更しない場合もあります。それが役に立つなら、私のコードはここにあります。
$("#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);
}
})