我正在将一些代码从32位整数的编译器迁移到64位。我发现一些旧代码假定最高可能的整数是2147483647,最低的可能是-947483647。
我理解最高(最大有符号32位整数),但是有谁知道什么是最低的特殊?业务逻辑中没有任何内容表明此整数(用于ID)不能低于该数字。
除了一些其他代码,其他人在一个名为INF的变量中使用了947483646(无穷/最高可能的数字?在有符号的二进制补码表示中会产生“负无穷大”-947483647),搜索谷歌变得非常少。
这可能只是一个毫无意义的数字,但也有一些其他点击使用其他整数,如视频游戏中的怪物HP(搜索其他附近的数字没有结果)的确切数字,这使我认为它背后有什么东西。
答案 0 :(得分:2)
Int32数据类型没有无穷大的值,因此可以随机选择幻数来表示INF。
为+ INF选择最大整数值(2 ^ 31-1)是很自然的
但为什么(-2 ^ 31)没有选择-INF?
可能,因为+ INF和-INF在打印时必须具有相同的长度(每个10个字符)。