在python中获得64位整数

时间:2011-12-30 06:05:56

标签: python integer bit

所以我想在python或lisp中编写一个位板。但我不知道如何确保我在python中获得64位整数。我一直在阅读文档,发现mpz库返回一个无符号的32位整数。这是真的?如果不是我该怎么办?

2 个答案:

答案 0 :(得分:22)

Python 2有两种整数类型:int,它是一个有符号整数,其大小等于机器的字大小(但始终至少为32位),long,大小不限

Python 3只有一种整数类型,称为int,但相当于Python 2 long

答案 1 :(得分:3)

您可以使用gmpy选择几个选项。以下是使用gmpy的一个示例:

>>> from gmpy import mpz
>>> a=mpz(7)
>>> bin(a)
'0b111'
>>> a=a.setbit(48)
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 

gmpy2是gmpy的开发版本,包含一个名为xmpz的新类型,允许更直接地访问这些位。

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 

您可能需要查看其他解决方案,例如bitarray

免责声明:我保持gmpy和gmpy2。