from math import atan
import struct

for double in [atan(-1), atan(1), 2.0**64, -2.0**64]:
    binary = struct.pack('>d', double)
    integer64 = int.from_bytes(binary, 'big')
    fraction = integer64 & 0xfffffffffffff
    exponent = (integer64 >> 52) & 0x7ff
    sign = '-' if double < 0 else '+'
    print([double, list(binary), sign, exponent, fraction])