Я читаю двоичный файл в Python и документацию для формата файла говорит:Python: Извлечение битов из байта
Flag (в двоичной системе) Значение
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?
Как вы подходите к этому?
, связанный: [Использование Python. Как я могу прочитать биты в байте?] (Http://stackoverflow.com/q/2576712/4279) – jfs