1

在 Python 中,是否有任何现有的基于库的方法可以多态地将缓冲区视为任何数据类型的数组——包括位、字节、字、双字等——而不复制缓冲区?我有一个应用程序,我希望能够将流中的任意位范围设置为任何无符号值。

例如,如果以字节为单位的缓冲区是[0x01, 0x02, 0x03, 0x04, 0x05, 0x06 ...],并且我想将绝对 little-endian 位 27:11 设置为无符号 little-endian 值 54321,则以字节为单位的缓冲区变为[0x01, 0x8A, 0xA1, 0x06, 0x05, 0x06 ...]. 应该抽象出读取-修改-写入字节的低级细节。然后我可能想要一个 WORD (uint16) 数据视图,[0x8A01, 0x06A1, 0x0605, ...]并以这种方式更改一些元素。

是否有任何好的公共 Python 库提供此功能?

4

1 回答 1

0

哦,你的意思是类型是可变的?

井列表是可变的,那么为什么不使用它们呢?

但如果你真的想使用比特,这里有一个例子 http://wiki.python.org/moin/BitArrays

它使用 BitArrays - 您应该能够从示例中找出所有内容。

[编辑]:用于在任何你想要的地方插入位:

import array
a=array.array('I')
a.append(5) #adds 1 element

a.extend([2,3,3,4,5,5,4]) #adds another 7 elements

a[3:6] = [6,6,6] #replaces 3 elements with the 3 6s

这就是你所需要的吗?

于 2013-04-18T21:49:27.803 回答