gpt4 book ai didi

python - 在python中计算十六进制校验和

转载 作者:行者123 更新时间:2023-11-28 20:47:03 26 4
gpt4 key购买 nike

我需要写一个函数来计算它的参数的校验和然后发送带有校验和的参数。

当我手动计算校验和时,我正在做这样的事情:

data = '\x03\x2F\x00\x00\x02\x12\x01\x47'

然后

s.sendall(data)

有没有办法把数据写成:

data = "03 2F 00 00 02 12 01"

让 python 知道我想要数据中的内容被视为十六进制?如果 python 将其视为十六进制,我的函数将如下所示

for i in range(len(data)):
sum = sum +data[i]

或者类似的东西?

最佳答案

要表示为十六进制,请使用 binascii.hexlify:

>>> import binascii
>>> binascii.hexlify('\x03\x2F\x00\x00\x02\x12\x01\x47')
'032f000002120147'
>>> ' '.join(binascii.hexlify(ch) for ch in '\x03\x2F\x00\x00\x02\x12\x01\x47')
'03 2f 00 00 02 12 01 47'

要计算校验和,迭代每个字节:

data = '\x03\x2F\x00\x00\x02\x12\x01\x47'

checksum = 0
for ch in data:
checksum += ord(ch) # ord('\x03`) -> 3

或使用 summap :

checksum = sum(map(ord, data))

关于python - 在python中计算十六进制校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19744391/

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