有人可以解释如何用8位二进制加法来计算校验和吗?这是从文档的摘录:8位二进制加法
这是消息的一般形式为:
STX | TYPE | FS | DATA | FS | CHK | ETX
STX是HEX 02
ETX是HEX 03
FS被HEX 15
“类型”是一个唯一的1字节消息标识符(例如,用于轮询消息的'P')。 “数据”包含可打印的ASCII字符。
校验
校验和计算上的所有字符,包括所有的<FS>
字符,<STX>
和<CHK>
之间。 校验和通过8位二进制加法计算出来,其中第8位或校验位假定为零。超越第8位的进位输了。将8位结果转换为两个可打印的ASCII十六进制字符,范围从00到FF,然后将其插入数据流<CHK>
。十六进制字符A-F是大写字母。接收设备重新计算缓存的消息的校验和,并将其与它收到的校验和进行比较。该比较是传输的后续确认(<ACK>
)或否定确认(<NAK>
)的基础。
似乎对我很清楚。你不明白什么? – 2011-02-25 10:24:47
你能告诉我一个例子(示例代码)吗?从来没有做过这样的事情...... – ekstrakt 2011-02-25 10:34:35
而你在Delphi或Java中需要它吗? – 2011-02-25 11:14:22