在Python中从十六进制解压缩为双精度

问题描述 投票:4回答:3

Python:从十六进制解压缩为两倍

这是值

value = ['\x7f', '\x15', '\xb7', '\xdb', '5', '\x03', '\xc0', '@']

我尝试过

unpack('d', value)

但是他需要一个字符串才能打开包装。现在是清单。但是,当我将其更改为字符串时,长度将从8更改为58。但是双精度数需要使用长度8的值。]

Python:从十六进制解压缩为两倍,这是值= ['\ x7f','\ x15','\ xb7','\ xdb','5','\ x03','\ xc0', '@']我尝试了unpack('d',value),但是他需要一个字符串来进行解包。这是一个...

python double hex
3个回答
12
投票

使用''.join连接将列表转换为字符串:


7
投票

请注意,有两种方法可以将其转换为双精度,这取决于cpu是否为bigendian或littleendian,因此最好明确说明您要的是哪种]]

>>> value = ['\x7f', '\x15', '\xb7', '\xdb', '5', '\x03', '\xc0', '@']
>>> ''.join(value)
'\x7f\x15\xb7\xdb5\x03\xc0@'
>>> from struct import unpack
>>> unpack('d', ''.join(value))
(8198.4207676749193,)

0
投票

请注意,在实现之前,请使用以下函数转换值以转换HEX-> Double或Double-> HEX。

© www.soinside.com 2019 - 2024. All rights reserved.