Я читаю двоичный файл на 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)
Но вычисление числовых байтов кажется дешевым обходным путем.
Могу ли я выполнить дополнительные математические операции, чтобы вычислить числа в байтах?
Как бы вы к этому подошли?