【C#】XRC校验

/// <summary>
/// XRC校验
/// </summary>
/// <param name="data">二进制数据</param>
///  <param name="datalen">数据长度</param>
/// <param name="sidx">校验开始位置</param>
/// <param name="endidx">校验结束位置</param>
/// <returns></returns>
public byte XORCheck(byte[] inbuf, int datalen, int sidx, int endidx)
{
    byte xrc = new byte();
    try
    {
        if (endidx < sidx)
        {
            endidx += datalen;
        }
        xrc = inbuf[sidx % datalen];
        for (int i = sidx + 1; i < endidx; i++)
        {
            xrc ^= inbuf[i % datalen];
        }
    }
    catch (Exception ex)
    {
        DebugOutput.ProcessMessage(string.Format("[ERROR][XORCheck]ex:{0}", ex.ToString()));
    }
    return xrc;
}
posted @ 2024-03-19 11:27  qiutian-hao  阅读(9)  评论(0编辑  收藏  举报