解包 4 字节 class 给出解包错误
unpacking a 4-byte class gives a unpacking error
我正在尝试解码字节对象,但出现错误,即使对象是 4 个字节的字节 class。
我在叫什么:
struct.unpack('>f', reg_hex[2:10])[0]
如果我打印 reg_hex[2:10]:
的值
print("reg_hex: {}".format(reg_hex[2:10]))
reg_hex: b'3a8a1b45'
如果我打印类型 reg_hex[2:10]:
print("reg_hex: {}".format(type(reg_hex[2:10])))
reg_hex: <class 'bytes'>
所以 reg_hex 是一个字节 class 的 4 个字节,但是 struct.unpack 似乎对此并不满意。
我是不是做错了什么?
那些是 8 个字节,而不是 4 个。它们是 3
、a
、...等字符
您需要先将十六进制转换为实际字节。例如:
bindata = bytes(int(reg_hex[i:i+2], 16) for i in range(0, reg_hex(x), 2))
我正在尝试解码字节对象,但出现错误,即使对象是 4 个字节的字节 class。
我在叫什么:
struct.unpack('>f', reg_hex[2:10])[0]
如果我打印 reg_hex[2:10]:
的值print("reg_hex: {}".format(reg_hex[2:10]))
reg_hex: b'3a8a1b45'
如果我打印类型 reg_hex[2:10]:
print("reg_hex: {}".format(type(reg_hex[2:10])))
reg_hex: <class 'bytes'>
所以 reg_hex 是一个字节 class 的 4 个字节,但是 struct.unpack 似乎对此并不满意。
我是不是做错了什么?
那些是 8 个字节,而不是 4 个。它们是 3
、a
、...等字符
您需要先将十六进制转换为实际字节。例如:
bindata = bytes(int(reg_hex[i:i+2], 16) for i in range(0, reg_hex(x), 2))