gpt4 book ai didi

python-2.7 - Python struct.pack() 数据范围错误

转载 作者:行者123 更新时间:2023-12-02 17:20:37 25 4
gpt4 key购买 nike

我正在使用 python2.7 并且我有这段代码。数据取值范围为 0 到 65792。

data_length=30
code=202
data=[51400,31400,100,51400,31400,100,51400,31400,100]
checksum = 0
total_data = ['$', 'M', '<', data_length, code] + data
for i in struct.pack('<2B%dh' % len(data), *total_data[3:len(total_data)]):
checksum = checksum ^ ord(i)
total_data.append(checksum)
try:
b = None
b = self.ser.write(struct.pack('<3c2B%dhB' % len(data), *total_data))
except Exception, error:
print "\n\nError in sendCMD."
print "("+str(error)+")\n\n"
pass

struct.pack('<2B%dh' % len(data), *total_data[3:len(total_data)]):

并给我这个错误:

for i in struct.pack('<2B%dh' % len(data), *total_data[3:len(total_data)]):
struct.error: short format requires SHRT_MIN <= number <= SHRT_MAX

最佳答案

SHRT_MAX 定义为 0x7FFF (32767),因为短裤已签名:https://en.wikibooks.org/wiki/C_Programming/C_Reference/limits.h

也许你想要 unsigned short? struct.pack 中的H:https://docs.python.org/2/library/struct.html#format-characters

编辑:即便如此,最大范围 (65792) 的值也会溢出 unsigned short——您需要更大的容器,例如 int (i) 或 unsigned int ( I) 使用这些值

关于python-2.7 - Python struct.pack() 数据范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43010646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com