最近刚学C# 目前有一组通过串口过来的数据, 我该怎么弄让49 前面的数据传入到变量 然后再相加
68 20 DF 68 02 02 35 41 49 16
68+20+DF+68+02+02+35+41+49+16=249 只用总和的后两位
请直接贴代码 如果代码可以正常跑通达到我的需求,我会采纳,谢谢
最近刚学C# 目前有一组通过串口过来的数据, 我该怎么弄让49 前面的数据传入到变量 然后再相加
68 20 DF 68 02 02 35 41 49 16
68+20+DF+68+02+02+35+41+49+16=249 只用总和的后两位
请直接贴代码 如果代码可以正常跑通达到我的需求,我会采纳,谢谢
参考GPT的内容和自己的思路,可以使用以下代码计算给定16进制字符串的校验位:
string hexString = "6820DF68020235414916";
int sum = 0;
// 将每两个字符解析为一个16进制数并相加
for (int i = 0; i < hexString.Length; i += 2)
{
sum += Convert.ToInt32(hexString.Substring(i, 2), 16);
}
// 只保留总和的最后两位并转换为16进制字符串
string checksum = (sum % 256).ToString("X2");
将16进制字符串存储在hexString变量中,然后使用一个循环迭代字符串中的每个16进制数并将它们相加。最后,我们将总和模256并只保留最后两位,然后将其转换为一个16进制字符串以表示校验位。在这个例子中,校验位应该是F9。
回答不易,还请采纳!!!