理解 ascii 字符串的校验和

understanding checksum of ascii string

我正在阅读一本关于通过串口向设备发送命令的手册,如下所示:

假设我的设备地址是000。我会发送这样的命令: ">000P**cr".

我的校验和**会是什么?根据手册,我需要“000P”的总字符码的最后两位。

不就是"P"的十六进制值吗?我似乎无法理解这一点。

是的,有点混乱,但我的猜测是:

total = ascii('0') + ascii('0') + ascii('0') + ascii('P')
total = 48 + 48 + 48 + 80
total = 224

cksum = last2digits(total) = 24

如果不能正常工作,也许可以试试十六进制:

hex(total) = E0
hex_cksum  = last2digits(hex(total)) = E0