如何编写打印整数位的程序。
我想做这样的事:

    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

10-06 00:47