Python之类的语言如何克服C的整数数据限制?
在使用C,Python和Scheme的析因程序进行随机实验时。我遇到了这个事实:
在C中,使用’unsigned long
long’数据类型,我可以打印的最大阶乘为65。这是‘9223372036854775808’,即此处指定的19位数字
。
在Python中,我可以找到一个最大为999的阶乘,它由大量数字组成,远远超过19。
CPython如何实现这一目标?它是否使用“八字”这样的数据类型?
我可能在这里缺少一些基本事实。因此,我将不胜感激和/或阅读参考资料。谢谢!
更新:谢谢大家的解释。这是否意味着CPython正在使用GNU Multi-precision库(或其他一些类似的库)?
更新2:我正在寻找源代码中Python的’bignum’实现。到底在哪里?它位于http://svn.python.org/view/python/trunk/Objects/longobject.c?view=markup。感谢Baishampayan。
-
称为 任意精度算术 。这里还有更多内容:http : //en.wikipedia.org/wiki/Arbitrary-
precision_arithmetic