为啥 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(8558968890839370929) 返回 8558968890839371000 ,为啥? [复制]