精度浮点数到单精度的python 实现

  • 1.python源码
  • 2.示例
  • 3.参考文献



实现原理可参考

3.参考文献部分。

1.python源码

代码输入参数s是字符串形式的16位二进数,如"0011010101010101"。

def halfpre2spre(s):
    #s代表16位二进数,
    sign=int(s[0])
    res0=pow(-1,sign) #符号位
    exp=int('0b'+s[1:6],2)# 指数位
    endpre=s[6:] #尾部10位精度位
    res2=0.0
    for j in range(10):
        res2+=int(endpre[j])*pow(2,-(j+1))
    res=res0*pow(2,exp-15)*(1+res2)
    return res

2.示例

当s="0011010101010101",
halfpre2spre(s)
Out: 0.333251953125