Python: извлечение битов из байта

Я читаю двоичный файл на 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)

Но вычисление числовых байтов кажется дешевым обходным путем.

Могу ли я выполнить дополнительные математические операции, чтобы вычислить числа в байтах?

Как бы вы к этому подошли?

18
задан Evan Borgstrom 30 March 2012 в 15:13
поделиться