python如何自然支持大整数并高效?

How can python naturally support big integer and be efficient?

在python中,如果让a=2*4,那么"a"就是整型。 但是如果我们让 a = 2**400,那么 "a" 将自动成为 long 类型,这是 java 的 BigInteger 对应物。

因此Python可以在必要时自动将整数转换为BigInteger。我的问题是:如果每次对一个整数进行算术运算,Python都会检查这个运算是否导致溢出。如果溢出,将其转换为 BigInteger。会不会很费钱?因为这基本上意味着 Python 在每个整数算术指令之后插入一条溢出检查指令。 那么python如何自然支持大整数并且高效呢?

Wouldn't it be very costly?

当然可以,但这远不是所涉及的最昂贵的事情。我们还对所涉及的算术运算进行动态调度,并动态分配对象以保存结果等。

So how can python naturally support big integer and be efficient?

如果您的算法将所有时间都花在使用 Python 整数进行 Python 级算术运算上,它 将不会 高效。它会很慢。在那种情况下,您可能想使用 NumPy 或 C 之类的东西而不是 Python 整数运算。