timeitの統計によると、これが私のプログラムで最も時間がかかるコードです。[-1.0、1.0]間隔のfloatを符号なし整数[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