将fp16数据的数组转换为在python中浮动

时间:2018-04-13 11:24:00

标签: python struct casting

我有一组调试数据,它们具有固定长度,但内容可变。基本上它来自C联合代码:

 union Foo{
        __fp16   half[];
        float    full[];
        int8_t   int8[];
        uint8_t  uint8[];
        int16_t  int16[];
        uint16_t uint16[];
        int32_t  int32[];
        uint32_t uint32[4];
}

所以在python中我使用:

在Bytes数组中解析它
struct.Struct('16B').unpack_from(data);

数据如下所示:

(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 196, 116, 0, 0, 0)

在这种情况下,数据填充“fp16”。其他数据类型很容易提取,但如何提取一半? 如何将其提取到普通的python“float”?

我试过这个,但我的版本的Struct版不支持'e':

struct.Struct('8e').unpack_from(data)

0 个答案:

没有答案