2016-05-30 5 views
0

Python 2.7とbitarray 0.8.1を使用して、いくつかのシーケンスされたレジスタ値を保持します(レジスタは16〜512バイトの長さにすることができます)。 このビット配列の特定の部分に値を設定したいですか?例えば大きなPythonビット配列のセクションに新しい値を配置する

:REGの2055:ビット2048に値が0xAAを設定する方法

from bitarray import bitarray 
BYTE = [False, False,False, False, False, False, False, False] 
reg = bitarray(512*BYTE, endian='big') 

答えて

0

スライスの割り当てを使用します。

bin_of_aa = "{:b}".format(0xaa) 
reg[2048:2055] = bitarray(bin_of_aa,endian="big") 
+0

ありがとうございます! (bin_of_aa) – Gilbert

+0

ええ、私は 'bitarray(0xaa)'を試して奇妙な結果を得ました。 'bitarray(bin(0xaa))'エラーが発生しました。 'bin'は、 '0b'接頭辞、もう1つは' bitarray(bin(0xaa)[2:]) 'です。 –

+0

'reg [2048:2055]'は長さ7のスライスを記述していますが、 'bitarray(bin_of_aa、endian =" big ")'は長さが8なのでエラーが発生すると思っていますが、慎重に... –

関連する問題