我正在尝试创建一个具有特定 BCC(块检查字符)结果(=0)的字节数组。
该数组将具有以下序言:
32 02 31 1F 31 1E 32 1F T E S T :
32 02 31 1F 31 1E 32 1F 54 45 53 54 3A 20
中间有一条可变文本消息(msg):
T e s t 2
54 65 73 74 32
紧随其后的是:
1E 37 1F 33 03
我得到的这个字符串的密件抄送是:0x11
这是返回此值的算法(C++):
unsigned char bcc=0;
int index = block.Find(0x03); //ETX
for (int i=0; i<= index;i++)
bcc ^= block[i];
return bcc;
我试图想出一种方法来查找中间消息部分,该部分将导致密件抄送为 0。
我目前正在使用试错法,但我很确定有更好的方法来做到这一点——我只是还没有想出一个可行的方法。我尝试了一个工具,该工具复制了上面使用的 BCC 方法(在 C# 中),但与我得到的结果不符(叹气)。