Python 中的十进制到二进制半精度 IEEE 754

Decimal to binary Half-Precision IEEE 754 in Python

我只能使用 struct.pack 模块将小数转换为二进制单精度 IEEE754,或者使用 numpy.frombuffer

执行相反的操作(float16 或 float32)

是否可以使用 Numpy 将小数转换为二进制半精度浮点数?

我需要打印转换结果,所以如果我输入 "117.0",它应该打印 "0101011101010000"

float16 method suggested by Mark Dickinson后面必须跟tostring()方法才能得到所需的二进制表示:

data = numpy.float16(2.3).tostring()

if I type "117.0", it should print "0101011101010000"

>>> import numpy as np
>>> bin(np.float16(117.0).view('H'))[2:].zfill(16)
'0101011101010000'

.view('H')float16值占用的内存重新解释为无符号整数。