我讀Python中的二進制文件和文件格式的文件說:的Python:從一個字節中提取位
標誌(二進制)含義
1 NNN NNNN表示有是遵循 的一個數據字節,其將被複製爲nnn nnnn(最大127) 次。
0 nnn nnnn表示圖像 有nnn個nnnn個字節(最大127個字節),並且 沒有重複。
Ñ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 2016-05-12 14:18:49