极大的数字如何处理?

问题描述 投票:0回答:1

电子游戏中如何处理极大的数字?以 Cookie Clicker 为例,数字可以达到 1 十亿(39 个零 - 1,000,000,000,000,000,000,000,000,000,000,000,000,000)甚至更大。游戏如何处理这么大的数字?他们是否实施了一个系统,比如每 100 万就是 100 万等等,并将它们分成多个变量?

numbers computer-science theory largenumber
1个回答
2
投票

浮点数学牺牲了精度,以便能够使用其部分字节作为指数,从而可以有效地表示非常大或很小的值。

对于较大的整数软件,某些语言提供固定大小,可以通过直接硬件支持或在软件中模拟。您经常会发现对较大固定宽度整数大小的内置支持,编译器通常会处理它。 许多语言(例如 JS)还提供

BigInt
,它会动态分配足够的字节来表示数字。 Python 会自动为你的整数执行此操作。 当然,对这些数字类型进行任何算术运算都会产生运行时成本,但幸运的是,计算机速度非常快,我怀疑 Cookie Clicker 可能正在使用 JS 标准 BigInt。

他们是否实施每 1,000 万人这样的系统

当然,这些在内部都可以使用二进制,并且可能只使用它们可用的所有位,一旦达到 8/32/64 位,“移动到下一个”字节/int。

大多数开发人员并不是自己实现这一点,而是依赖于库,如 GMP,或编程语言本身提供的任何内容。

© www.soinside.com 2019 - 2024. All rights reserved.