Tôi đang đọc một tập tin nhị phân trong python và tài liệu cho các định dạng tập tin nói:Python: Extracting bit từ một byte
Cờ (ở dạng nhị phân) Ý nghĩa
1 nnn nnnn Chỉ ra rằng có là một byte dữ liệu để theo dõi đó là để được nhân đôi nnn nnnn (tối đa 127) lần.
0 nnn nnnn Cho biết rằng có nnn nnnn byte của hình ảnh dữ liệu cần theo dõi (tối đa 127 byte) và rằng không có trùng lặp.
n 000 0000 Kết thúc trường dòng. Cho biết kết thúc của một dòng ghi . Giá trị của n có thể là số không hoặc một. Lưu ý rằng kết thúc của trường dòng là bắt buộc và rằng nó được phản ánh trong độ dài của dòng ghi trường được đề cập ở trên.
Khi đọc các tập tin tôi hy vọng các byte Tôi đang ở trở 1 nnn nnnn
nơi phần nnn nnnn
nên 50.
tôi đã có thể làm khi sử dụng này như sau:
flag = byte >> 7
numbytes = int(bin(byte)[3:], 2)
Nhưng tính toán số byte cảm thấy giống như một giải pháp rẻ tiền.
Tôi có thể thực hiện nhiều phép tính bit hơn để thực hiện việc tính toán số không?
Bạn sẽ tiếp cận điều này bằng cách nào?
liên quan: [Sử dụng Python Làm thế nào tôi có thể đọc các bit trong một byte?] (Http://stackoverflow.com/q/2576712/4279) – jfs