【发布时间】:2012-04-14 07:13:00
【问题描述】:
我正在用 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)
但 numbytes 计算感觉像是一种廉价的解决方法。
我可以做更多的位数学来完成 numbytes 的计算吗?
你会如何处理这个问题?
【问题讨论】: