【问题标题】:What’s the significance of the number “536870916” in computer science数字“536870916”在计算机科学中有什么意义
【发布时间】:2020-12-13 16:14:45
【问题描述】:

我注意到在许多游戏中,数字 536870916 存在很多错误。例如,在一个用 Lua 编码的游戏中,你可以伤害敌人的最大数字是 536870916,这是没有记录的。当我用谷歌搜索时,我注意到有关此号码的其他错误,例如:

  1. “随机崩溃“分配 536870916 字节失败,现在将终止””

有谁知道这是为什么?

【问题讨论】:

  • 几乎可以肯定,它比 2 的幂高“一个刻度”,这意味着某些类型的非一错误会触发它。有没有可能在游戏中,最大可能的HP是536870912?
  • @javedb 看看这个:unknownworlds.com/ns2/32bit
  • 0x20000004,你自己很容易发现的,它在计算机科学中没有任何意义。

标签: math binary numbers computer-science


【解决方案1】:

536870916 没有什么特别之处。它恰好非常接近 2 的幂:229 = 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 位,这使其成为两个标志的并集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-22
    • 2010-09-16
    • 2010-10-05
    • 2013-09-11
    • 2021-01-23
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    相关资源
    最近更新 更多