Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 寻找时间和空间有效的算法,将任何整数转换成二进制值_Javascript_While Loop_Time Complexity_Space Complexity - Fatal编程技术网

Javascript 寻找时间和空间有效的算法,将任何整数转换成二进制值

Javascript 寻找时间和空间有效的算法,将任何整数转换成二进制值,javascript,while-loop,time-complexity,space-complexity,Javascript,While Loop,Time Complexity,Space Complexity,我完全是一个编程新手,这是我在网上社区发布的第一个问题。我使用JavaScript编写了一个函数,将任何整数转换为二进制值 function number2Binary(inputNumber){ var digitsArray=[]; if(inputNumber === 0 || inputNumber === 1) { return inputNumber; } while(inputNumber>0){ var bit = inputNumber%2; inputNum

我完全是一个编程新手,这是我在网上社区发布的第一个问题。我使用JavaScript编写了一个函数,将任何整数转换为二进制值

function number2Binary(inputNumber){
var digitsArray=[];
if(inputNumber === 0 || inputNumber === 1)
{
  return inputNumber;
}
while(inputNumber>0){
  var bit = inputNumber%2;
  inputNumber= parseInt(inputNumber/2);
  digitsArray.push(bit);
}
return digitsArray.reverse().join(" ");  
}
number2Binary(2);
我很肯定这可能不是一个最佳的解决方案。有人能为这个问题提出更好的解决方案吗? 补充问题:
1.我在脚本中使用了while循环。如何计算while循环的时间复杂度?

一种简单快速的算法

foo=42
console.log(foo.toString(2))

一种简单快速的算法

foo=42
console.log(foo.toString(2))

因为在JavaScript中所有东西都是对象,所以数字也是对象,因此您可以对它们调用方法

对于数字,有一个
Number.prototype.toString
,它接受一个参数,即基

如果您的值在inputNumber变量中,则可以调用
inputNumber.toString(2)

您也可以对硬编码值执行相同操作:
1.1.toString(2)


如果要打印常量整数,请小心,因为第一个点将被解析为小数点,因此您必须编写
(1)。toString(2)
1.0。toString(2)
或只是
1..toString(2)
,以显示硬编码的数字。

因为在JavaScript中,一切都是对象,数字也是对象,因此,您可以对它们调用方法

对于数字,有一个
Number.prototype.toString
,它接受一个参数,即基

如果您的值在inputNumber变量中,则可以调用
inputNumber.toString(2)

您也可以对硬编码值执行相同操作:
1.1.toString(2)


如果要打印常量整数,请小心,因为第一个点将被解析为小数点,因此您必须写入
(1).toString(2)
1.0.toString(2)
或只是
1..toString(2)
,以显示硬编码的数字。

如果您想要数字的字符串版本,您可以

Long.toString(42, <base>);
产生

11110
如果需要数字的整数数组,可以键入

int[] num = Long.toString(<num>, <base>).chars().map(c->c-'0').toArray();
int[]num=Long.toString(,).chars().map(c->c-'0').toArray();

如果您想要数字的字符串版本,您可以

Long.toString(42, <base>);
产生

11110
如果需要数字的整数数组,可以键入

int[] num = Long.toString(<num>, <base>).chars().map(c->c-'0').toArray();
int[]num=Long.toString(,).chars().map(c->c-'0').toArray();

这段代码看起来更像Java而不是JavaScript:)漂亮的语言Java!这段代码看起来更像Java而不是JavaScript:)漂亮的语言Java!