理解 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
我正在阅读一本关于通过串口向设备发送命令的手册,如下所示:
假设我的设备地址是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