gpt4 book ai didi

python - 将 Python 数组 ('B' ) 转换为数组 ('H' ) - 总是小端?

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:53 25 4
gpt4 key购买 nike

我有一个 Python array('B')(包含从文件中读取的一些数据),我想将其转换为 array('H')。我目前使用的代码类似于以下内容:

a = array.array('B', f.read())
b = a[16:32]
c = array.array('H', b.tostring())

不幸的是,第三行中的转换使用了 native 字节顺序,因此在不同的机器上会给出不同的结果。

有什么方法可以使转换始终为小端字节序,而不管 native 字节顺序如何?

最佳答案

array.array 仅对内部计算有用,因为它始终使用 native 字节顺序。有一种方法 byteswap 可以改变顺序。因此,您必须检查 sys.byteorder 以确定系统字节顺序,并相应地进行交换。

要更好地控制顺序,请使用 struct:

data = f.read()
c = struct.unpack_from('<8H', data, 16)

关于python - 将 Python 数组 ('B' ) 转换为数组 ('H' ) - 总是小端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23320751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com