2024-04-26 06:42:26 发布
网友
我有一个长的十六进制字符串20D788028A4B59FB3C07050E2F30,我想提取前4个字节,改变它们的顺序,转换成有符号的数字,除以2^20,然后打印出来。在C语言中,这对我来说很容易:)但是我有点卡住了。在
例如,正确的答案将从上面的字符串中提取4字节数,即0x288D720。除以2^20等于40.5525。主要是在python中,我很难找到正确的方法来进行字节操作。在C语言中,我只需要抓取指向每个字节的指针,并将它们移到我想要的位置,并转换成int或long。在
你只需要做一个提取 foo[:8]
foo[:8]
十六进制到字节:hexadecimal string to byte array in python
重新排列字节:byte reverse AB CD to CD AB with python
您可以使用struct转换为long
struct
用(2**20)做一个普通除法
(2**20)
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) * 1.0 / (1 << 20)
你只需要做一个提取
foo[:8]
十六进制到字节:hexadecimal string to byte array in python
重新排列字节:byte reverse AB CD to CD AB with python
您可以使用
struct
转换为long用
(2**20)
做一个普通除法Python在字符串方面非常出色,所以让我们使用我们现有的:
但是用2**20除以有点奇怪,所以也许移位至少也值得一提。。。在
^{pr2}$毕竟,我会的
相关问题 更多 >
编程相关推荐