问题描述
我注意到很多游戏中都有关于536870916的错误。例如,在用Lua编写的一款游戏中,您可以伤害敌人的最大数目是536870916,这没有记载。我在搜寻该号码时发现了与此号码有关的其他错误,例如:
- “随机崩溃“无法分配536870916字节,现在将终止””
有人碰巧知道为什么吗?
解决方法
536870916没什么特别的。它恰好非常接近2的幂:2 29 = 536870912。
536870912字节为512MiB或0.5GiB。为应用程序配置内存是合理的限制,因此略高于该限制的数字势必会出现在崩溃报告中。
如果您在Google上搜索号码536870912-536870916,则搜索结果会减少:
- 536870912:47,500,000个结果
- 536870913:7,920,000个结果
- 536870914:36,300个结果
- 536870915:7,720个结果
- 536870916:8,380个结果
您可能会看到536870916的另一个来源是将数字用作存储标志的位集。有时错误代码是这样存储的。 536870916以二进制形式仅设置了2位,这使其成为两个标志的并集。