解码十六进制字符串

时间:2016-09-02 21:23:30

标签: hex parity

我有一个串口接收的字符串(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 hex背后的逻辑吗?

非常感谢 安德烈

1 个答案:

答案 0 :(得分:1)

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