【发布时间】:2020-08-16 12:38:27
【问题描述】:
例如在 C#、C++、Java 或 JavaScript 中,有效的 int 大小是 32 位。如果我们要计算一些较大的数字,例如 70 位,我们应该使用一些软件功能(Arbitrary-precision arithmetic)。
Python 有一个非常棘手的整数内部无限表示,我无法弄清楚整数运算最有效的 int 大小是多少。
换句话说,我们是否有一些 int 大小,比如 64 位,以便有效地使用 int?
或者16、32、64 或some random bits count 都没有关系,Python 将以相同的效率处理所有这些整数?
简而言之,Python 总是使用任意精度算术还是 32\64 使用硬件算术?
【问题讨论】:
-
如果大小很重要,您可以使用 numpy。在这里您可以选择例如uint32 和 uint64。
-
我不确定你在问什么,Python 整数 没有大小,你似乎已经明白了?
-
@Stefan 或者,您可以将
array模块用于原始的数字数组,这有时就足够了(如果您要进行任何繁重的处理,那么可能 numpy 就是您想要的) -
就您而言,任何特定
int对象的位长都是一个实现细节。我不明白你在这里问什么“我们是否有一些 int 大小,比如 64 位,用于有效的 ints 使用?” -
@juanpa.arrivillaga 我们有两种算术。
Hardware,用于大小小于或等于 CPU 字的整数。Software,当我们可以计算大数字(比 CPU 的字大),但使用一些代码时速度很慢。 Python 总是使用慢速软件算术吗?还是它使用 32/64 位的硬件算法?
标签: python integer long-integer integer-arithmetic