所以我正在考虑用python或lisp编写位板。但是我不知道如何确保我将在python中获得64位整数。我一直在阅读文档,发现mpz库返回一个无符号的32位整数。这是真的?如果没有,我该怎么办?
最佳答案
您可以使用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。