在python中,如果我们让a = 2*4,那么"a"将是整数类型.但是如果我们让a = 2**400,那么"a"将自动为long类型,这是java的BigInteger对应物.
因此,Python可以在必要时自动将整数转换为BigInteger.我的问题是:如果每次对整数执行算术运算,Python都会检查此操作是否导致溢出.如果溢出,将其转换为BigInteger.这不是很贵吗?因为这基本上意味着Python在每个整数算术指令之后插入溢出检查指令.那么python如何自然地支持大整数并且高效?
这不是很贵吗?
当然,这远远不是最昂贵的事情.我们还对所涉及的算术运算进行动态调度,并动态分配对象以保存结果等.
那么python如何自然地支持大整数并且高效?
如果你的算法花费所有时间用Python整数进行Python级算术,那么效率就不高.地狱会很慢.在这种情况下,您可能希望使用NumPy或C而不是Python整数算法.
| 归档时间: |
|
| 查看次数: |
5440 次 |
| 最近记录: |