Javascript parseInt(输入,2);当输入为十进制时,不显示2之后的二进制值

Javascript parseInt(输入,2);当输入为十进制时,不显示2之后的二进制值,javascript,console.log,parseint,Javascript,Console.log,Parseint,代码如下: var输入=提示(“输入十进制值”); log(输入+)二进制值为:,Number.parseInt(输入,2))首先,您希望转换为二进制的方法不正确。您可以使用input.toString(2)将十进制转换为二进制。但在此之前,您必须将输入转换为数字,因为提示将返回字符串 您可以执行以下操作: var input=parseInt(提示(“输入十进制值”); log(输入+)二进制值为:,输入.toString(2)来自: 如果parseInt遇到的字符不是 指定的基数,则忽略

代码如下:

var输入=提示(“输入十进制值”);

log(输入+)二进制值为:,Number.parseInt(输入,2))首先,您希望转换为二进制的方法不正确。您可以使用
input.toString(2)
将十进制转换为二进制。但在此之前,您必须将输入转换为数字,因为提示将返回字符串

您可以执行以下操作:

var input=parseInt(提示(“输入十进制值”);
log(输入+)二进制值为:,输入.toString(2)来自:

如果parseInt遇到的字符不是 指定的基数,则忽略该基数及其所有后续字符和 返回解析到该点的整数值

然后呢,

如果第一个字符不能转换为带基数的数字 在使用中,parseInt返回NaN

任何包含除0或1以外的任何字符作为第一个字符的字符串都将返回
NaN


因此,输入11111或101010101将起作用,但2或3或333将不起作用。

您的两段代码或多或少是相反的

…期望
input
是一个包含二进制数的字符串,并将其转换为JavaScript数

如果键入一个
2
,则该二进制数无效(它只有
0
s和
1
s)


…这是错误的

input.toString(2)
…期望
input
是一个JavaScript数字,并将其转换为包含该数字的十进制表示形式的字符串


比较:

console.log(“解析二进制数”);
console.log(Number.parseInt(“1”,2));
console.log(Number.parseInt(“10”,2));
console.log(Number.parseInt(“3”,2));
log(“将数字转换为二进制”);
console.log(1.0.toString(2))
console.log(2.0.toString(2))
console.log(3.0.toString(2))

因此,Number.parseInt不会转换为二进制,而是从二进制转换而来。如果输入3,则会收到NaN,因为3不可能是从基数2到基数10的数字解析

如果改为运行此代码

var输入=提示(“输入十进制值”);

log(输入+)二进制值为:,Number.parseInt(输入,2))
您的第二个代码为3生成10。这与它是一个字符串@Alex无关,因为这是parseInt所期望的。问题是基数是2,就像在二进制中一样,但OP没有传递一个二进制字符串来获得十进制等效值。我在您的第二个测试中输入了一个更高的数字,并且
未捕获的RangeError:toString()基数参数必须介于2和36之间
。事情变得越来越复杂interesting@TheBombSquad这是因为他们将输入作为基数传递。两个代码示例都没有实际执行用户似乎期望的操作。您可以只编写
1..toString(2)
,等等。
input.toString(input, 2)
input.toString(2)