为了账号安全,请及时绑定邮箱和手机立即绑定

求高手解析一下一段C语言的校验和代码转成C#后的问题

求高手解析一下一段C语言的校验和代码转成C#后的问题

C#
守着星空守着你 2018-12-07 11:03:07
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 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

并没有问题,十六进制的 0x51就是十进制的81。 C# 代码的变量名 i 改改就没有什么问题了。

查看完整回答
反对 回复 2018-12-24
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

0x51=81,没问题。

查看完整回答
反对 回复 2018-12-24
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

NO PROBLEM

查看完整回答
反对 回复 2018-12-24
  • 3 回答
  • 0 关注
  • 935 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信