如何计算校验和

Rik*_*tel 15 c# checksum

我正在开发仪器驱动程序,我想知道如何计算帧的校验和.

说明:

  1. 用字符[0-9]和[AF]表示.

  2. 从[STX]之后的字符开始直到[ETB]或[ETX](包括[ETB]或[ETX])的字符以二进制形式添加.

  3. 代表十六进制代码中最低有效8位的2位数字将转换为ASCII字符[0-9]和[AF].

  4. 最高有效位存储在CHK1中,最低有效位存储在CHK2中.

我没有超过第3和第4点.

任何人都可以提供c#的示例代码.

请帮我.

Rik*_*tel 18

最后我得到了答案,这是计算校验和的代码:

private string CalculateChecksum(string dataToCalculate)
{
    byte[] byteToCalculate = Encoding.ASCII.GetBytes(dataToCalculate);
    int checksum = 0;
    foreach (byte chData in byteToCalculate)
    {
        checksum += chData;
    }
    checksum &= 0xff;
    return checksum.ToString("X2");
}
Run Code Online (Sandbox Code Playgroud)