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)