Javascript 寻找时间和空间有效的算法,将任何整数转换成二进制值
我完全是一个编程新手,这是我在网上社区发布的第一个问题。我使用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
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!