假设我使用以下代码在python中定义了一些位数组:
from bitarray import bitarray
d=bitarray('0'*30)
d[5]=1如何将d转换为其整数表示形式?此外,如何使用位数组执行诸如d&(d+1)之类的操作?
发布于 2017-02-26 04:31:40
要将bitarray转换为整数形式,可以使用struct模块:
代码:
from bitarray import bitarray
import struct
d = bitarray('0' * 30, endian='little')
d[5] = 1
print(struct.unpack("<L", d)[0])
d[6] = 1
print(struct.unpack("<L", d)[0])输出:
32
96发布于 2017-02-26 03:53:26
from bitarray import bitarray
d=bitarray('0'*30)
d[5]=1
i = 0
for bit in d:
i = (i << 1) | bit
print i输出: 16777216。
发布于 2018-03-21 20:52:39
我通常使用的一个更简单的方法是
d=bitarray('0'*30)
d[5]=1
print(int(d.to01(),2))从代码的角度来看,这可能没有那么有效,因为它将位数组转换为字符串,然后返回到int,但是读起来要简洁得多,所以在更短的脚本中读可能更好。
https://stackoverflow.com/questions/42464514
复制相似问题