Python 将十六进制字符串转换为浮点

Python 将十六进制字符串转换为浮点,python,casting,hex,idl-programming-language,Python,Casting,Hex,Idl Programming Language,我试图从一个文件中读取一组十六进制数 lines ='4005297103CE40C040059B532A7472C440061509BB9597D7400696DBCF1E35CC4007206BB5B0A67B4007AF4B08111B87400840D4766460524008D47E0FFB4ABA400969A572EBAFE7400A0107CCFDF50E' dummy = [lines[index][i:i+16] for i in range(0, len(lines[ind

我试图从一个文件中读取一组十六进制数

lines ='4005297103CE40C040059B532A7472C440061509BB9597D7400696DBCF1E35CC4007206BB5B0A67B4007AF4B08111B87400840D4766460524008D47E0FFB4ABA400969A572EBAFE7400A0107CCFDF50E'
dummy = [lines[index][i:i+16] for i in range(0, len(lines[index]),16)]
rdummy=[]
for elem in dummy[:-1]:
 
                rdummy.append(int(elem,16))
这是10个16位数 特别是在阅读第一篇文章时,我有:

print(dummy[0])
4005297103CE40C0
现在我想把它转换成float

我有一个IDL脚本,当读取这个数字时,会得到2.64523509

IDL中使用的命令是

double(4613138958682833088,0)
显示为0的位置是转换时使用的偏移量


在python中有这样做的方法吗?

您可能想使用
struct
包来实现这一点,类似这样的东西似乎可以工作:

导入结构
lines='4005297103CE40C040059B532A7472C440061509BB9597D7400696DBCF1E35CC4007206BB5B0A67B4007AF4B0811B87400840D47664660524008D47E0FFB4AB400969A572EBAFE7400A0107CCFDF50E'
对于struct.iter_解包('>d',bytes.fromhex(行))中的[value]:
打印(值)

结果是
2.64523509
首先被打印出来,这似乎是正确的
int('4005297103CE40C0',base=16)
您的问题应该通过这里给出的答案来解决:这是否回答了您的问题?所有建议的链接都没有帮助。正如我所说,我知道转换的结果(2.645)