2017-04-25 6 views
1

ビットストリングがあり、特定の位置から別の位置に読み込みたい。 私が持っている例えばので、私は、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 

を私は、最初の2ビットを読み、それらを変換したいです長さが値に変更されたときに id == 3 そして次のラウンドのために、それは第3ビットから始めるべきであるなど

答えて

1

ループ内のコードは、m == 0の場合は何も行いますが、mをインクリメントするので、mはループを介して初めて0になります。ループの残りの部分は、実際には何もしていないようです。あなたは、おそらく実際に

id.append(msgstr[x]) 

をしたい

id.append = msgstr[x] 

を言っても

、あなたはPythonのslice notationを使用しての恩恵を受ける可能性があるようにそれはまたそうです。

+0

ありがとう、スライスは素晴らしい –

関連する問題