解码十六进制字符串

Decode HEX string

我通过串行端口 (HEX) 接收了这个字符串:

02 30 31 30 30 3f 50 35 32 0d 0a
02 30 31 30 31 3f 55 35 38 0d 0a
02 30 31 30 32 3f 48 34 43 0d 0a
02 30 31 30 33 3f 45 34 41 0d 0a
02 30 31 30 34 3f 50 35 36 0d 0a
02 30 31 30 35 3f 55 35 43 0d 0a
02 30 31 30 36 3f 48 35 30 0d 0a
02 30 31 30 37 3f 45 34 45 0d 0a
02 30 31 30 38 3f 50 35 41 0d 0a
02 30 31 30 39 3f 55 36 30 0d 0a
02 30 31 31 30 3f 48 34 42 0d 0a
02 30 31 31 31 3f 45 34 39 0d 0a
02 30 31 31 32 3f 50 35 35 0d 0a
02 30 31 31 33 3f 55 35 42 0d 0a
02 30 31 31 34 3f 48 34 46 0d 0a
02 30 31 31 35 3f 45 34 44 0d 0a




1° hex: STX
2° & 3°: fixed
4° & 5°: from 30 30 to 39 39
6°: fixed
7°: same routine 55 / 48 / 45 / 50 
8° & 9°: my question
10°: CR
11°: LF

有人可以帮助我了解 8 和 9 十六进制背后的逻辑吗?

非常感谢 安德里亚

将1到7的所有字节相加,然后取结果的最后两位,十六进制(使用大写字母)。获取每个数字的 ascii 值,这些是校验和的两个字节。例如,将第一行的所有字节相加得到 0x152。 5和2的ascii码是0x35和0x32.