如何编写打印整数位的程序。
我想做这样的事:
function countBits(octet)
{
var i;
var c = "";
var k = "";
i = 128;
while (i > 0)
{
c = "";
if (octet < i)
{
c = '0';
i = i / 2;
k += c
}
else
{
c = '1';
k += c
octet = octet - i;
i = i / 2;
}
}
return k;
}
但如果我想用这个程序打印位,我有输出:
Input: 123
Output 01111011 and infinity numbers of zero
如何删除此错误?
P.S:我只想用循环和算法来完成这个程序,而不是像
(n >>> 0).toString(2);
或.map()
之类的函数 最佳答案
所以我添加了一个日志来检查i的值,我在循环中得到了这个:
i=64;i=32;i=16I=1;I=0.5;I=0.25
所以是的,按照agatab所说的使用另一个条件,因为对于javascript,
1/2不给0。
与许多其他编程语言不同,javascript不定义
不同类型的数字,如整数、短、长、浮点
等。
javascript数字总是以双精度浮点形式存储
点编号,遵循国际IEEE 754标准。
引自:http://www.w3schools.com/js/js_numbers.asp