struct.unpack_from(fmt,b_data,offset) 按照指定的格式fmt,从偏移位置offset,对b_data开始解包,返回数据格式是一个元组(v1,v2…)
fmt可以有:
_struct.py:
The remaining chars indicate types of args and must match exactly;
these can be preceded by a decimal repeat count:
x: pad byte (no data); c:char; b:signed byte; B:unsigned byte;
?: _Bool (requires C99; if not available, char is used instead)
h:short; H:unsigned short; i:int; I:unsigned int;
l:long; L:unsigned long; f:float; d:double; e:half-float.
Special cases (preceding decimal count indicates length):
s:string (array of char); p: pascal string (with count byte).
Special cases (only available in native format):
n:ssize_t; N:size_t;
P:an integer type that is wide enough to hold a pointer.
Special case (not in native mode unless ‘long long’ in platform C):
q:long long; Q:unsigned long long
Whitespace between formats is ignored.
The variable struct.error is an exception raised on errors.
官方解释文档:格式字符
格式字符具有以下含义;C 和 Python 值之间的按其指定类型的转换应当是相当明显的。 ‘标准大小’列是指当使用标准大小时以字节表示的已打包值大小;也就是当格式字符串以 ‘<’, ‘>’, ‘!’ 或 ‘=’ 之一开头的情况。 当使用本机大小时,已打包值的大小取决于具体的平台。
格式
註解:
————————————————————————————————————————————
我的实践:
为什么两种格式输出的十进制答案不一样?
GPT(人工智障)的回答:
我的回答:
记得使用第二种格式哦~
参考代码网站:https://stackoverflow.com/questions/2274503/reading-binary-file-in-python?rq=4
struct.unpack_from()函数学习网站:https://www.iteye.com/blog/sharley-2378245
struct官方帮助文档:https://docs.python.org/zh-tw/3/library/struct.html