我对python很新,刚开始在某个地方工作。一直在试图理解由开发人员写的一段代码,而这些代码离开了,我无法弄清楚。
基本上,我熟悉unpack()的功能,但在某些地方使用的格式让我感到困惑!
var1, var2, var3, var4 = struct.unpack('!6xBB4xI4xI', data)
是4个变量的赋值语句。现在这就是我所知道的用于解包的格式,我认为是正确的: -
'x':值的分离(在下面的答案中由@ shx2指出的填充位)
!6:以BIG-ENDIAN格式从开头读取第7个字符(从索引0开始)
I:无符号整数
Now, I haven't been able to figure out the formats:-
BB4 - does that mean read 8 bytes (as the B stands for unsigned char, so BB could mean 2 sets of unsigned char)?
I4 - reading 4 bytes and getting the integer value!
我对其他2种格式的解释可能也是错误的 - 我只是想从python在线文档和调试期间看到的数据中找出它。如果我错了,请纠正我。
答案 0 :(得分:2)
答案 1 :(得分:0)
使用Big Endian格式的数据时,struct.unpack('!6xBB4xI4xI', data)
表示:
6
:6个填充字节
B
:一个未签名的字母
B
:一个未签名的字符
4
:填充字节
I
:一个未签名的Int
4
:填充字节
I
:一个未签名的Int
总的来说,结构有24个字节