| 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) |