有没有办法强制Python在Windows上使用64位整数?

时间:2015-05-20 18:23:51

标签: python windows 64-bit

我注意到,只要任何整数超过2 ^ 31-1,我的数字重码就会大幅减速,尽管我在64位版本的Windows上使用64位版本的Python。这似乎是{2.7}和Python 3上的true。我读过that Windows使它们的长度为32位,但这并不意味着我不可能使用64位数字

有没有办法通过类或模块甚至不同的Python构建来使用64位整数?

3 个答案:

答案 0 :(得分:4)

my_array = numpy.array(my_list,dtype=numpy.int64)

可能?

答案 1 :(得分:1)

我不知道任何使用Python 2.7的int使用64位本机类型的Windows版本。所有C编译器都将使用long来指代32位类型。更改Python以使用long long作为int的内部表示可能会破坏扩展模块。

在Python 3.x中,唯一的整数类型是任意精度类型(在Python 2.x下称为long)。在64位系统上,任意精度类型工作在2 ^ 30位的块中。在32位系统上,任意精度类型工作在2 ^ 15位的块中。值15和30很难改变。

对于外部库,我维护gmpy2库。它提供对任意精度GMP / MPIR库的访问。一旦数字达到~128位,gmpy2.mpz整数类型通常更有效。 YMMV。

答案 2 :(得分:-2)

python有four numeric types 对于整数,有int和long。长整数具有无限精度。当你输入一个足够大的数字时,你得到很长时间,或者你可以通过添加" l"

来明确指定它。
>>> s = 1000
>>> type(s)
<type 'int'>
>>> s = 1000l
>>> type(s)
<type 'long'>