def format(number): upper = number // (1 << 64) lower = number % (1 << 64) print("" + hex(upper) + "," + hex(lower) + ",") for q in range(-342, 0): power5 = 5 ** -q z = 0 while (1 << z) < power5: z += 1 if q >= -27: b = z + 127 c = 2 ** b // power5 + 1 format(c) else: b = 2 * z + 2 * 64 c = 2 ** b // power5 + 1 # truncate while c >= (1 << 128): c //= 2 format(c) for q in range(0, 308 + 1): power5 = 5 ** q # move the most significant bit in position while power5 < (1 << 127): power5 *= 2 # *truncate* while power5 >= (1 << 128): power5 //= 2 format(power5)