ls0f/phone

关于 phone.py 里的 "<4si" 和 "<iiB" 含义的疑问

qq345386817 opened this issue · 3 comments

你好,请问代码里的 "<4si" 和 "<iiB" 是什么意思?这个地方看不太懂。

ls0f commented

参考python的struct模块

在 Python 代码中,<4si 和 <iiB 是类型约束。它们表示变量或函数的参数或返回值的类型必须是特定的类型。
<4si 表示变量或函数的参数或返回值必须是 4 字节的整数。i 表示整数,4 表示字节数。
<iiB 表示变量或函数的参数或返回值必须是两个 2 字节的整数。i 表示整数,2 表示字节数,B 表示大端字节序。

是这样吧?谢谢

ls0f commented
  1. <4si

    • < 表示使用小端字节序(little-endian)。
    • 4s 表示一个长度为4的字节字符串。
    • i 表示一个有符号整数(通常为4个字节)。

    因此,<4si 表示一个小端字节序的结构,其中包含一个长度为4的字节字符串和一个有符号整数。

  2. <iiB

    • < 表示使用小端字节序(little-endian)。
    • i 表示一个有符号整数(通常为4个字节)。
    • i 表示一个有符号整数(通常为4个字节)。
    • B 表示一个无符号字符(1个字节)。

    因此,<iiB 表示一个小端字节序的结构,其中包含两个有符号整数和一个无符号字符。