【问题标题】:integer to single precision conversion in pythonpython中的整数到单精度转换
【发布时间】:2014-06-03 14:35:25
【问题描述】:

我不知道如何使用 python 将整数转换为单精度,我已经尝试使用 numpy 但 float32() 函数没有帮助。

示例 984761996 -> 1.360135E-3

【问题讨论】:

  • 请添加您已经尝试过的代码,以便我们看到您出错的地方。

标签: python python-2.7 casting single-precision


【解决方案1】:

这是我写的代码:

import math
n = 984761996
size = 32

IEEE754 = {16: [5,15],32: [8,127],64: [11,1023],80: [15,16383],128: [15,16383]}

b = bin(n)
b = b[2:].zfill(size)
signal = b[0]
exponent = b[1:IEEE754[size][0]+1]
fraction = b[IEEE754[size][0]+1:]

i=-1
fraction_ten = 0
for c in fraction:
    fraction_ten = fraction_ten + int(c)*math.pow(2,i)
    i = i - 1

n_ten = math.pow(-1,int(signal)) * (1 + fraction_ten) * math.pow(2,(int(exponent,2)-IEEE754[size][1]))

print "%.6E" % n_ten

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    相关资源
    最近更新 更多