在JS中从Dec转换为Binary

时间:2016-04-12 15:58:10

标签: javascript logic

我正在尝试将十进制数转换为二进制数,并且我在c ++中编写了一个执行此工作的函数并且工作正常,但是当我在Javascript中编写相同的函数时它没有工作并打印出错误像“11101111111111”这样的价值。 谁能告诉我这个功能有什么问题?

 var decToBinary=function() {
    var n=16,s="";
    while(n) {
        if(n % 2 == 0)
            s += "0";
        else
            s += "1";
        n /= 2;
    }
    s.reverse();
    return s;
 }

2 个答案:

答案 0 :(得分:0)

how do I convert an integer to binary in javascript?

我认为这将是您想要查看的链接。

function dec2bin(dec){
    return (dec >>> 0).toString(2);
}

答案 1 :(得分:0)

问题源于这样一个事实,即您只在n === 0时终止,但在很多情况下,您会获得n === 1,这会导致n逐渐增加2 n直到浮点数学的极限导致它为零。相反,如果1不大于或等于function log(msg) { document.querySelector('pre').innerHTML += msg + '\n'; } function decToBinary(n) { var str = ''; while(n >= 1) { if (n % 2 === 0) { str += '0'; } else { str += '1'; } n /= 2; } str = str.split('').reverse().join(''); return str; } log('1: ' + decToBinary(1)); log('2: ' + decToBinary(2)); log('15: ' + decToBinary(15)); log('16: ' + decToBinary(16));,则终止。

<pre></pre>
tmit=ntohl((time_t)buf[4]); // get transmit time