gpt4 book ai didi

python - 如何重新排序Python十六进制字符串中的字节并转换为长整型

转载 作者:行者123 更新时间:2023-11-30 22:58:13 28 4
gpt4 key购买 nike

我有这个长十六进制字符串 20D788028A4B59FB3C07050E2F30 在 python 2.7 中我想提取前 4 个字节,更改它们的顺序,将其转换为有符号数字,将其除以 2^20,然后打印出来。在 C 语言中,这对我来说非常容易:),但在这里我有点卡住了。

例如,正确答案将从上面的字符串中提取 4 字节数字作为 0x288D720。然后除以 2^20 将得到 40.5525。主要是我无法找出在 python 中进行字节操作的正确方法。在 C 中,我只需获取指向每个字节的指针,并将它们移动到我想要的位置,然后转换为 int 或 long。

最佳答案

Python 在字符串方面非常出色,所以让我们使用现有的:

s = "20D788028A4B59FB3C07050E2F30"
t = "".join([s[i-2:i] for i in range(8,0,-2)])
print int(t, 16) * 1.0 / pow(2,20)

但是 2**20 对于位来说有点奇怪,所以也许移位至少也值得一提......

print int(t, 16) >> 20

毕竟我会

print int(t, 16) * 1.0 / (1 << 20)

关于python - 如何重新排序Python十六进制字符串中的字节并转换为长整型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36267874/

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