在定义的位置读取定义长度的位

时间:2017-04-25 05:35:00

标签: python

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

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

msgstr = bitstring.BitArray(0b11110011001111110)

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

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

2 个答案:

答案 0 :(得分:1)

如果m == 0,你的循环中的代码只会做任何事情,但是你增加m,所以m在第一次循环时只有0。其余的时间你经历你的循环,它似乎没有做任何事情。

另外,你说的地方

id.append =  msgstr[x]

你可能真的想要

id.append(msgstr[x])

您似乎也可以从使用Python的slice notation

中受益

答案 1 :(得分:0)

我不明白你的目标究竟是什么,但你看看https://wiki.python.org/moin/BitManipulation吗?