Mar*_*ark 6 python integer bit
所以我想在python或lisp中编写一个位板.但我不知道如何确保我在python中获得64位整数.我一直在阅读文档,发现mpz库返回一个无符号的32位整数.这是真的?如果不是我该怎么办?
Tay*_*mon 24
Python 2有两种整数类型:int它是一个有符号整数,其大小等于机器的字大小(但始终至少为32位),并且long大小不受限制.
Python 3只有一个整数类型,它被调用int但相当于Python 2 long.
使用gmpy有多种选择。下面是一个使用 gmpy 的示例:
>>> from gmpy import mpz
>>> a=mpz(7)
>>> bin(a)
'0b111'
>>> a=a.setbit(48)
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>>
Run Code Online (Sandbox Code Playgroud)
gmpy2 是 gmpy 的开发版本,包含一个名为 xmpz 的新类型,它允许更直接地访问位。
>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>>
Run Code Online (Sandbox Code Playgroud)
您可能还想了解其他解决方案,例如位数组。
免责声明:我维护 gmpy 和 gmpy2。