从bitstring.BitArray中读取特定的位

时间:2017-04-24 15:25:41

标签: python

我有一个Bitarray,想要从某个位置读到另一个位置。 我在for循环中有int变量长度,所以例如我有:

length = 2 而我的Bitarray看起来像是:

msgstr = bitstring.BitArray(0b11110011001111110)

然后我想读取前两位并将它们转换为int,以便我有: id == 3 对于下一轮,当长度值发生变化时,它应该从第三位开始等。

id = bitstring.BitArray()
m = 0
while 5 != m:
   /////////////
   Length changes in value part of Code
   /////////////
   x = 0
   if m == 0:
       while length != x:
           id.append = msgstr[x] #msgstr is the BitArray that needs to be read
           x = x + 1
   m = m + 1

1 个答案:

答案 0 :(得分:0)

这里你想要的是切片。

for i in range(0,len(msgstr),length):
    print msgstr[i:i+length].uint

此代码可以满足您的要求。它将取前两位并将它们转换为int,然后取第三和第四位并将它们转换为int等。