使用 C、Python 和 Scheme 中的阶乘程序进行一些随机实验。我发现了这个事实:
在 C 中,使用“unsigned long long”数据类型,我可以打印的最大阶乘为 65。即“9223372036854775808”,即指定的 19 位数字here.
在Python中,我可以找到一个大到999的数字的阶乘,它由大量数字组成,远远超过19。
CPython 是如何实现这一点的呢?它是否使用像'这样的数据类型octaword' ?
我可能在这里遗漏了一些基本事实。因此,我希望能阅读一些见解和/或参考资料。谢谢!
更新:谢谢大家的解释。这是否意味着 CPython 正在使用 GNU 多精度库(或其他类似的库)?
更新 2:我正在源代码中寻找 Python 的“bignum”实现。它到底在哪里?它在这里http://svn.python.org/view/python/trunk/Objects/longobject.c?view=markup。谢谢拜山帕扬。
它被称为任意精度算术。这里还有更多:http://en.wikipedia.org/wiki/Arbitrary- precision_arithmetic
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)