Binary16在Python.
-
17-09-2020 - |
题
struct
模块当您尝试将数据转换为和从二进制格式。但是,最近我遇到了一个文件格式规范,它使用 binary16浮点格式。我看了通过Python文档,但找不到任何可以转换为和它的任何东西。将此数据转换为Python floats的最佳方法是什么?
解决方案
你可以大致这样做你在c - i.e.,我认为,大致喜欢这个......:
def tofloat(b16):
sign = -1 if b16 & 0x8000 else +1
expo = ( b16 & 0x7C00 ) >> 10
prec = b16 & 0x03FF
if expo == 0:
return sign * (2.0 ** -24) * prec
elif expo == 0x1F:
return sign * float('inf')
prec |= 0x0400
return sign * (2.0 ** (expo - 25)) * prec
. 其他提示
一个快速的谷歌搜索旋转 http://packages.python.org/bigfloat/ 这表示它具有操纵生成的浮点数的语境。然而,我自己不熟悉包装,所以我无法告诉你如何使用它的任何东西(至少,只有你可以在文档中阅读自己)。
不隶属于 StackOverflow