コンパクトコードでデータを圧縮すると、整数の扱いがわかりません.1bytes、2bytes、3bytesなどの整数に整数を格納する必要があります。どのようにすればよいですか?特定のビット(24ビット、16ビットなど)のintをPythonに格納する方法は?
または、タプルを変更する方法(1、0、1、...、1)正確な3バイトのストレージ
コンパクトコードでデータを圧縮すると、整数の扱いがわかりません.1bytes、2bytes、3bytesなどの整数に整数を格納する必要があります。どのようにすればよいですか?特定のビット(24ビット、16ビットなど)のintをPythonに格納する方法は?
または、タプルを変更する方法(1、0、1、...、1)正確な3バイトのストレージ
バイトに標準ライブラリパックデータ内struct
モジュールに(24ビット)。
あなたが任意のバイト数でパックする必要がある場合、例えば、struct
モジュールに頼るよりもbytearray
を使用する方がよいかもしれません:
>>> a = bytearray(3) # create 3 byte array
>>> a[0] = 0x3e
>>> a[1] = 0xff
>>> a[2] = 0x00
注任意のPythonオブジェクトのメモリのオーバーヘッドがあること数バイトよりかなり多くなるので、メモリ使用について本当に心配しているなら、できるだけ少ないオブジェクトですべてのデータをまとめて保存する必要があります。
正確なニーズに応じて、bitstringなどのサードパーティのモジュールが役立つ可能性があります(完全開示:私が書いた)。
>>> b = bitstring.BitArray((1,0,1,1,1,0,0,1,1,1,0,1,0,1,1,1))
>>> b.bytes
'\xb9\xd7'
>>> b.uint
47575