Visual Basic 中的校验和计算
Posted
技术标签:
【中文标题】Visual Basic 中的校验和计算【英文标题】:Checksum calculation in visual basic 【发布时间】:2015-08-19 20:47:45 【问题描述】:我想与医疗分析仪通信并向其发送一些消息。但是分析器会在消息末尾请求一个控制字符或校验和来验证它。
请原谅我的英语知识有限,但根据手册,这是计算校验和的方法:
控制字符是排除逻辑和(异或),以字符为单位,从文本的开头到文本的结尾,由一个 1 字节的二进制组成。另外,由于这个控制字符是十六进制的00~7F的值,所以请不要误认为是传输中使用的控制码。
那么请你告诉我如何根据这些信息获得这个控制字符。由于我的英语有限,我不太了解所写的内容。
我正在使用 Visual Basic 进行编程
谢谢
【问题讨论】:
【参考方案1】:该手册的英文也不是很好。我的理解:
您将发送到设备的消息可以表示为字节数组。您希望将每个字节异或在一起,这将为您留下一个字节校验和,以添加到消息的末尾。 (字节 1 XOR 字节 2 XOR 字节 3 XOR ....)
“Moreover”之后的所有内容似乎都在说“如果您正在从设备读取,最后一个字符是校验和,而不是命令,所以不要将其视为命令,即使它看起来像一个。”。您正在写入设备,因此您可以忽略该部分。
异或(记住我不懂VB):
有一个校验和变量,设置为 0。循环遍历消息的每个字节,并将校验和变量与该字节进行异或。将结果存储回校验和中。
【讨论】:
我们需要在一个命令行中对所有字节数组进行异或吗?如果是这样,你知道怎么做吗?因为我们事先并不知道字符串的确切长度。 添加了有关该位的更多详细信息。以上是关于Visual Basic 中的校验和计算的主要内容,如果未能解决你的问题,请参考以下文章