Итак, у меня есть двоичный файл, который я хочу прочитать, который имеет 256 сегментов следующей структуры:
- Первый байт: целое число, представляющее длину битов поля следуя ему, что вам нужно прочитать. Оно не обязательно заканчивается границей байта
- Переменное количество бит: поле, которое вы хотите прочитать. Он не обязательно заканчивается границей байта.
Файл заканчивается заполненными нулями, так что он заканчивается на границе байта.
Я изо всех сил пытаюсь найти идеал метод, который включает чтение как можно меньшего количества отдельных битов. Я думаю, может быть, сначала прочитать длину, разделить это значение на 8 и прочитать это количество байтов следующим, а затем использовать остаток от предыдущей операции (если есть) для чтения остальной части поля бит за битом. Однако я не уверен, что это идеальный метод. Есть предложения?
Edit: Прикреплена ссылка на файлы. Читаемый файл - это формат, в котором я хотел бы распечатать двоичный файл. Чтобы взять пример из желаемого вывода:
- длина для 9 c: 4
- код для 9 c: 1101
4 будет первым байтом, прочитанным из двоичного файла, а 1101 будет переменным количеством битов
https://ln2.sync.com/dl/e85dc8b40/3f5wbhaq-kxz3ijv8-wuts3t32-442gbsh2