c 语言检验和计算方法:unsigned char CheckSum(unsigned char *uBuff, unsigned char uBuffLen){unsigned char i,uSum=0;for(i=0;i<uBuffLen;i++){uSum = uSum + uBuff[i];}uSum = (~uSum) + 1;return uSum;}C#写的代码:public static byte CheckNum(byte[] memorySpage){byte uSum = 0;foreach (byte b in memorySpage){uSum += b;}byte i = Convert.ToByte(1);uSum = (byte)~uSum;uSum += i;return uSum;}其中c语言开发的用在下位机STM32上面,通过tcp连接上C#开发的上位机,从而在计算校验和的时候数据对不上,其中C语言的校验数据(十六进制):00 00 E3 00 60 19 D2 6D 1C E9 AA BB CC DD 01 51,共16个字节,其中前15个字节用来计算,得出第16个字节即51为校验和,而用C#写的代码计算,得到结果是81,因此求高手帮忙解决看一下本人写的C#的代码,该如何改进?万分感谢
- 3 回答
- 0 关注
- 935 浏览
添加回答
举报
0/150
提交
取消