小编Wol*_* R.的帖子

从两个十六进制字符串传输的C double转换

我在Python的第一天.

我喜欢过滤由C生成的跟踪文件.来自C的每个双重格式在文件中由两个十六进制字符串格式化,表示64位双精度的32位.

例如1234567890.3(C double)
文件内:

0xb4933333
0x41d26580
Run Code Online (Sandbox Code Playgroud)

我如何解析并组合它以进一步使用Python float?

提前致谢

python string floating-point double hex

8
推荐指数
1
解决办法
466
查看次数

以十六进制字符串(python)重新排序字节顺序

我想在python中构建一个小格式化器,让我回到嵌入在十六进制字符串行中的数值.

它是格式化程序的核心部分,格式化速度超过100行/秒(每行大约约100个字符)应该是合理的.

下面的代码应该给出一个我目前被阻止的例子.

'data_string_in_orig'显示给定的输入格式.它必须为每个字进行字节交换.需要从'data_string_in_orig'到'data_string_in_swapped'的交换.最后,我需要结构访问,如图所示.预期结果在评论中.

在此先感谢Wolfgang R.

#!/usr/bin/python

import binascii
import struct

## 'uint32 double'
data_string_in_orig    = 'b62e000052e366667a66408d'
data_string_in_swapped = '2eb60000e3526666667a8d40'
print data_string_in_orig

packed_data = binascii.unhexlify(data_string_in_swapped)
s = struct.Struct('<Id')
unpacked_data = s.unpack_from(packed_data, 0)  
print 'Unpacked Values:', unpacked_data

## Unpacked Values: (46638, 943.29999999943209)

exit(0)
Run Code Online (Sandbox Code Playgroud)

python string hex swap python-2.x

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

hex ×2

python ×2

string ×2

double ×1

floating-point ×1

python-2.x ×1

swap ×1