import struct with open("digital-0.bin", "rb") as f: data = f.read() num_transitions = (len(data) - 44) // 8 # Read integers as little-endian (normal), but doubles as big-endian initial_state = struct.unpack_from('d', data, 20)[0] # big-endian end_time = struct.unpack_from('>d', data, 28)[0] # big-endian print(f"initial_state={initial_state}, begin={begin_time:.9f}, end={end_time:.9f}") transitions = [] for i in range(num_transitions): t = struct.unpack_from('>d', data, 44 + i * 8)[0] transitions.append(t) for i, t in enumerate(transitions[:20]): print(f" [{i}] {t:.9f}s")