将64位浮点格式字符串转换为浮点编号

2024-06-17 13:13:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆64位浮点格式的字符串,我必须把它们转换成浮点数。我知道格式是什么,但我想知道是否有一个内置的函数可以直接完成这项工作,如:

convertToFloat(C06FCA5E35000000) --> -254.324 
convertToFloat(405F7D70A4000000) --> +125.96

我知道如何手动将这些位模式转换为数字,但这需要大量的位转换。有更好的方法吗?在

我将“c06fca5e3500000”修改为“\xC0\x6F\xCA\x5E\x35\x00\x00\x00”,并将其存储到myString。在

^{pr2}$

为什么会这样?在

我没有使用binascii.a2b_hex或binascii.b2a_hex,因为它将“A”转换为“41”或“41”转换为“A”。两者都不是我想要的。正确的?在

>>>print len('\xC0\x6F\xCA\x5E\x35\x00\x00\x00')
8
>>>print len(myString)
32

现在我知道为什么会这样,但我还是不知道怎么解决这个问题。在


Tags: 字符串len格式浮点printhexx00mystring
1条回答
网友
1楼 · 发布于 2024-06-17 13:13:08

您可以使用struct.unpack>d是一个big-endian double;有关更多信息,请参见help(struct)!在

import struct

d, = struct.unpack('>d', b'\xc0\x6f\xca\x5e\x35\x00\x00\x00')

print(d)
# -254.32399988174438

如果您的字符串真的是'C06FCA5E35000000',可以先使用^{}将其转换为字节。在

相关问题 更多 >