estoy leyendo un archivo binario en Python y la documentación para el formato del archivo dice:Python: La extracción de los bits de un byte
bandera (en binario) Significado
1 nnn nnnn Indica que hay es un byte de datos a seguir que debe duplicarse nnn nnnn (máximo 127) veces.
0 nnn nnnn Indica que hay nnn nnnn bytes de imagen datos a seguir (127 bytes máximo) y que no hay duplicaciones.
n 000 0000 Campo de fin de línea. Indica el final de un registro de línea . El valor de n puede ser cero o uno. Tenga en cuenta que se requiere el campo de fin de línea y que se refleja en la longitud del campo de registro de línea mencionado anteriormente.
Al leer el archivo que estoy esperando el byte estoy en volver 1 nnn nnnn
donde la parte nnn nnnn
debe ser 50.
he sido capaz de hacer esto utilizando la siguiente:
flag = byte >> 7
numbytes = int(bin(byte)[3:], 2)
Pero el cálculo de numbytes se siente como una solución económica.
¿Puedo hacer más cálculos de bits para realizar el cálculo de numbytes?
¿Cómo te acercarías a esto?
relacionado: [Usando Python ¿Cómo puedo leer los bits en un byte?] (Http://stackoverflow.com/q/2576712/4279) – jfs