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

时间:2015-11-20 01:14:14

标签: python biginteger

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

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

1 个答案:

答案 0 :(得分:8)

  

这不是很贵吗?

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

  

那么python如何自然地支持大整数并且效率高呢?

如果你的算法花费所有时间用Python整数进行Python级算术,那么就不会高效。它会像地狱一样慢。在这种情况下,您可能希望使用NumPy或C而不是Python整数算法。