gpt4 book ai didi

python - 重新排序十六进制字符串中的字节顺序(python)

转载 作者:太空狗 更新时间:2023-10-29 20:37:25 25 4
gpt4 key购买 nike

我想在 python 中构建一个小的格式化程序,给我返回数字嵌入十六进制字符串行中的值。

它是我的格式化程序的核心部分,应该可以合理快速地格式化超过 100 行/秒(每行约 ~100 个字符)。

下面的代码应该给出我当前被阻止的示例。

'data_string_in_orig' 显示给定的输入格式。它一定要是为每个单词交换字节。从 'data_string_in_orig' 到需要“data_string_in_swapped”。最后我需要结构访问如图。预期结果在评论中。

提前致谢沃尔夫冈 R

#!/usr/bin/python

import binascii
import struct

## 'uint32 double'
data_string_in_orig = 'b62e000052e366667a66408d'
data_string_in_swapped = '2eb60000e3526666667a8d40'
print data_string_in_orig

packed_data = binascii.unhexlify(data_string_in_swapped)
s = struct.Struct('<Id')
unpacked_data = s.unpack_from(packed_data, 0)
print 'Unpacked Values:', unpacked_data

## Unpacked Values: (46638, 943.29999999943209)

exit(0)

最佳答案

array.arrays 有一个 byteswap method :

import binascii
import struct
import array
x = binascii.unhexlify('b62e000052e366667a66408d')
y = array.array('h', x)
y.byteswap()
s = struct.Struct('<Id')
print(s.unpack_from(y))

# (46638, 943.2999999994321)

选择 array.array('h', x) 中的 h 是因为它告诉 array.array 将数据视为x 作为 2 字节短数组。重要的是每个项目都被视为 2 个字节长。 H,表示 2 字节无符号短整型,同样有效。

关于python - 重新排序十六进制字符串中的字节顺序(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155570/

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