为啥 parseInt 为 31 位二进制返回 1 [关闭]

Posted

技术标签:

【中文标题】为啥 parseInt 为 31 位二进制返回 1 [关闭]【英文标题】:Why parseInt return 1 for 31 bit binary [closed]为什么 parseInt 为 31 位二进制返回 1 [关闭] 【发布时间】:2021-11-30 11:32:42 【问题描述】:

如果我这样做的话,在 C# 中

var value = Convert.ToInt32("1000000000000000000000000000000", 2);

它将返回 1073741824 但当我在 javascript 中执行相同操作时,

parseInt(1000000000000000000000000000000,2) 

它返回1,但不返回1073741824

【问题讨论】:

在 JavaScript 中你没有传递字符串... 把它放在一个字符串中 【参考方案1】:

您需要将string 作为第一个参数传递

console.log(parseInt("1000000000000000000000000000000",2))

【讨论】:

【参考方案2】:

这是因为在 JavaScript 中你缺少引号 :)

parseInt("1000000000000000000000000000000",2) 

工作正常。

【讨论】:

以上是关于为啥 parseInt 为 31 位二进制返回 1 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在C语言中,int类型存储的最大的数是2^32,为啥?为啥不是2^31

NodeJS parseInt() 函数不返回正确的 HEX 值

为啥 parseInt(1/0, 19) 返回 18?

parseInt(8558968890839370929) 返回 8558968890839371000 ,为啥? [复制]

使用 Integer.parseInt 转换 32 位二进制字符串失败

JavaScript函数