仅使用struct.pack创建一个字节

问题描述 投票:0回答:1

我编写了一个python脚本,该脚本使用struct.pack()将十进制数转换为十六进制字符串。例如:struct.pack('>h', 1024) => '\x04\x00'

问题是,当我输入一个小于256的数字时,它仍然会创建一个由两个字节组成的字符串。

例如:struct.pack('>h', 20) => '\x00\x14'

这对我来说是个问题,因为对于256以下的数字,我只能使用一个字节。这意味着对于20位小数,我想生成输出'\ x14'。

是否有某种方法可以强制struct.pack()或执行其他功能?

python hex output
1个回答
0
投票

'>h'代表big endian两个字节的短整数。如果要获取单字节无符号整数,则必须使用:

struct.pack('>B', 254) => '\xfe'
© www.soinside.com 2019 - 2024. All rights reserved.