根据timeit统计,这是一段代码,该代码在我的程序中耗时最多。将[-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
最佳答案
您尝试过显而易见的吗?
def floatToInt(x):
return int((x+1.0) * (2**31))
关于python - 在Python中更快地将float转换为int,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2499933/