我有一个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
对于下一轮,当长度值发生变化时,它应该从第三位开始等。
答案 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吗?