1

我正在使用模块位串解压缩一个 24 字节的边界文件。我无法控制输入文件。该模块的默认解释显然是 big-endian,这在解压缩 int 或 float 等数据类型时很容易修复,但我希望将一些数据表示为十六进制值。使用 unpack hex 值会显示不正确的字节顺序。有解决办法吗?示例输入:D806所需输出:06D8

from bitstring import ConstBitStream
fp = ConstBitStream(filename="testfile.bin")
firstChunk = fp.read(2*8)
data=firstChunk.unpack('hex:16')
print(data)
4

1 回答 1

0

您可以在小端整数解释上使用普通的 Python 格式。

而不是一个readthenunpack你也可以一起做:

print('{:0>4X}'.format(fp.read('uintle:16')))

然后从流中读取接下来的 16 位,将其解释为无符号小端整数,然后将其格式化为四个十六进制字符,右对齐并用零填充。

于 2016-08-05T11:11:47.987 回答