Я читаю двоичный файл в python, и в документации для формата файла говорится:
Флаг (в двоичном выражении) Значение
1 nnn nnnn Указывает, что имеется один байт данных который должен быть дублирован nnn nnnn (максимум 127) раз.
0 nnn nnnn Указывает, что есть nnn nnnn байты изображения данные для наблюдения (максимум 127 байт) и нет дубликатов.
n 000 0000 Поле конца строки. Обозначает конец строки запись. Значение n может быть либо нулевым, либо одним. Обратите внимание, что поле конца строки требуется и что он отражается в длине записи строки поле, упомянутое выше.
При чтении файла я ожидаю, что байт я должен вернуть 1 nnn nnnn
, где часть nnn nnnn
должна быть 50.
Я смог сделать это, используя следующее:
flag = byte >> 7
numbytes = int(bin(byte)[3:], 2)
Но вычисление numbytes похоже на дешевое обходное решение.
Могу ли я сделать больше бит математики, чтобы выполнить вычисление numbytes?
Как вы подходите к этому?