Python中更快的浮点转整型转换
这是我程序中耗时最长的一段代码,根据时间统计显示的。这个函数的作用是把范围在[-1.0, 1.0]之间的浮点数转换成无符号整数,范围是[0, 2**32]。我该怎么加快floatToInt
的速度呢?
piece = []
rng = range(32)
for i in rng:
piece.append(1.0/2**i)
def floatToInt(x):
n = x + 1.0
res = 0
for i in rng:
if n >= piece[i]:
res += 2**(31-i)
n -= piece[i]
return res
1 个回答
5
你试过最简单的那个方法吗?
def floatToInt(x):
return int((x+1.0) * (2**31))