我正在尝试思考如果语言构造无法处理大于某个特定值的数字时,我将如何对极大的数字进行计算(无穷大-整数不浮点数)。
我确定我不是第一个也不是最后一个问这个问题的人,但是我使用的搜索字词并未给我提供处理这些情况的算法。相反,大多数建议都会提供语言更改或变量更改,或谈论似乎与我的搜索无关的事情。所以我需要一些指导。
我会勾勒出这样的算法:
确定该语言的整数变量的最大长度。
如果数字大于变量最大长度的一半,则将其拆分为数组。(给一点游戏室)
数组顺序[0] =最右边的数字[n-max] =最左边的数字
例如 编号:29392023 Array [0]:23,Array [1]:20,array [2]:39,array [3]:29
由于我将变量的长度的一半确定为标记的起点,因此我可以计算出它们的十分之一,十分之一,百分之一等。通过中途标记进行放置,这样,如果可变的最大长度为0到9999999999之间的10位数字,那么我知道减半到五位数给我一些游戏空间。
因此,如果我加或乘,我可以使用一个变量检查器函数,该函数可以看到array [0]的第六个数字(从右)与array [1]的第一个数字(从右)在同一位置。
除法和减法都有自己的问题,我还没有考虑过。
我想知道支持比程序更大数量的最佳实现。