我编写了一个python脚本,该脚本使用struct.pack()将十进制数转换为十六进制字符串。例如:struct.pack('>h', 1024) => '\x04\x00'
问题是,当我输入一个小于256的数字时,它仍然会创建一个由两个字节组成的字符串。
例如:struct.pack('>h', 20) => '\x00\x14'
这对我来说是个问题,因为对于256以下的数字,我只能使用一个字节。这意味着对于20位小数,我想生成输出'\ x14'。
是否有某种方法可以强制struct.pack()或执行其他功能?
'>h'
代表big endian两个字节的短整数。如果要获取单字节无符号整数,则必须使用:
struct.pack('>B', 254) => '\xfe'