我正在尝试将十进制数转换为二进制数,并且我在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;
}
答案 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