[英]Convert Arduino checksum-function to C#
我已经有了要在C#中使用的Arduino校验和函数来检查收到的数据的有效性:
Arduino中的char
的长度为1个字节, int
的长度为2个字节,C#中的相应数据类型为short
char Send::calcChecksum(const char* const packet, const int packetLength) {
int i = 0;
char checksum = 0;
while(i < packetLength) {
checksum ^= packet[i++];
}
return checksum;
}
我将如何在C#中编写此函数? 我特别困惑^=
运算符的作用。
using System;
public class Program
{
public static void Main()
{
var stringToCheck = "hi there";
Console.WriteLine("Checksum for " + stringToCheck + ": " + CalcChecksum(stringToCheck, stringToCheck.Length));
}
static int CalcChecksum(string packet, int packetLength)
{
char checksum = (char)0;
for (int i = 0; i < packetLength; i++)
{
checksum ^= packet[i];
}
return checksum;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.