我试图在jquery中将十进制数转换为二进制但不能
var n = 5;
var i = 1;
var rem = 0;
var binary = 0;
while (n!=0)
{
rem= n % 2;
n= n / 2;
binary = binary + rem * i;
i= i * 10;
}
alert(binary);
我在c++
等其他编程语言中使用了相同的公式将十进制转换为二进制,并且它的工作正常,但它在这里提供infinity error
答案 0 :(得分:1)
除法后将其转换为整数,否则可能导致无限循环,因为在某些情况下它不会达到0(数字可能包含小数部分)。
n= parseInt(n / 2, 10);
答案 1 :(得分:0)
这里的问题是
n = n / 2;
因为在JavaScript(jQuery)中,除法返回一个浮点数,而不是整数。
所以你有2.5,然后1.25,0.625,0.3125,等等,所以你的条件不满意。
为了避免这种情况,你只需要解析float结果的整数
n = parseInt(n / 2);