如何在Python中存储特定位(24位、16位等)的int?

如何在Python中存储特定位(24位、16位等)的int?,python,Python,当我用压缩代码压缩数据时,我不知道如何处理整数,我需要将整数存储到1字节、2字节、3字节等内存中,在Python中如何实现这一点 或者,如何将元组(1,0,1,…,1)(24位)更改为精确的3字节存储标准库中的模块将数据打包为字节。如果需要打包为任意数量的字节,则使用字节数组可能比依赖结构模块更好,例如: >>> a = bytearray(3) # create 3 byte array >>> a[0] = 0x3e >>> a[1]

当我用压缩代码压缩数据时,我不知道如何处理整数,我需要将整数存储到1字节、2字节、3字节等内存中,在Python中如何实现这一点


或者,如何将元组(1,0,1,…,1)(24位)更改为精确的3字节存储

标准库中的模块将数据打包为字节。

如果需要打包为任意数量的字节,则使用
字节数组
可能比依赖
结构
模块更好,例如:

>>> a = bytearray(3)  # create 3 byte array
>>> a[0] = 0x3e
>>> a[1] = 0xff
>>> a[2] = 0x00
请注意,任何Python对象的内存开销都将远远超过几个字节,因此如果您真的担心内存使用,那么您应该将所有数据存储在尽可能少的对象中

根据您的具体需要,第三方模块可能会有所帮助(完全披露:我写的)

>>> 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