如何在Python上处理包含3字节单词的二进制数据?
我需要在大端主机上读取包含24位小端字的二进制数据结构。但是这个 以下是示例数据帧的转储:如何在Python上处理包含3字节单词的二进制数据?,python,python-3.5,binaryfiles,Python,Python 3.5,Binaryfiles,我需要在大端主机上读取包含24位小端字的二进制数据结构。但是这个 以下是示例数据帧的转储: 7F 01 00 00 02 00 00 76 DE 77 -- -------- -------- ----- -- | | | | | | | | | | | | | | \ End of frame | | | | | | |
7F 01 00 00 02 00 00 76 DE 77
-- -------- -------- ----- --
| | | | |
| | | | |
| | | | \ End of frame
| | | |
| | | \ 16 bits checksum
| | |
| | \ Second 24 bits word
| |
| \ First 24 bits word
|
\ Start of frame
使用
struct
读取3字节单词是否有解决方法?按单词,我假定您指的是二进制数据单位(即处理器字大小)?你不能直接解析字节数组来得到你想要的吗?把它读入两个变量(1和2字节),然后合并。。。或者,在适当的位置插入两个0x00字节,然后将其作为4字节字读取。Yes@Error@确实是彼得里斯。现在,我把它们读为三个字节,并使用int.from_bytes
——但这不知何故违背了使用struct.struct
的目的。