Python's struct.unpack()
- это именно то, что вам нужно. Вам просто нужно сформулировать соответствующую строку формата, чтобы модуль мог знать, где находятся поля и какой у них двоичный формат, и вы сможете быстро декодировать свои данные.
Вы объясняли вещи в терминах битов, но это не так, как на самом деле работает ITCH. Поля с фиксированными десятичными числами действительно имеют длину N байтов, подразумевается некоторый десятичный сдвиг. Таким образом, вы можете прочитать поле цены как целое число, а затем разделить его на 1e4, чтобы получить значение с плавающей точкой.