根据文档,可以使用 parseInt(string, base) 将数字的二进制表示形式转换为数字本身。 .
例如,
var number = parseInt("10100", 2);
// number is 20
但是,请看下一个示例:
var number = parseInt("1000110011000011101000010100000110011110010111111100011010000", 2);
// number is 1267891011121314000
var number = parseInt("1000110011000011101000010100000110011110010111111100100000000", 2);
// number is 1267891011121314000
这怎么可能?
请注意,二进制数几乎相同,除了最后 9 位。
最佳答案
1267891011121314000 远远超过 Number.MAX_SAFE_INTEGER
(9007199254740991)。它无法在内存中安全地表示它。
看看这个经典的例子:
1267891011121314000 == 1267891011121314001 // true
关于javascript - 为什么这些二进制表示会产生相同的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40350450/