zoukankan      html  css  js  c++  java
  • C# BCC异或校验法

    通讯协议中最后一位是校验位 

    采用BCC(异或校验)法

    这个怎么解释?

    就是 把16进制的字符串转换成byte[]数据,依次拿出来进行异或一下 然后返回的值和校验位对比下 看看对不对

    例如:

    232301FE313233343536373839303132333435363701001E0F01021226270001383938363032623531333136353033393731363001009E

    最后一位是9E 十进制为 158

    那么我们就截取9E前面部分

    232301FE313233343536373839303132333435363701001E0F0102122627000138393836303262353133313635303339373136300100

    传入方法

    /// <summary>
    /// BCC和校验代码
    /// </summary>
    /// <param name="data">需要校验的数据包</param>
    /// <returns></returns>
    public byte Get_CheckXor(byte[] data)
    {
    byte CheckCode = 0;
    int len = data.Length;
    for (int i = 0; i < len; i++)
    {
    CheckCode ^= data[i];
    }
    return CheckCode;
    }

    返回结果 一样是158

    如果还没看懂?我们再转回16进制

    /// <summary>
    /// BCC和校验代码返回16进制
    /// </summary>
    /// <param name="data">需要校验的数据包</param>
    /// <returns></returns>
    public string GetBCCXorCode(byte[] data)
    {
    byte CheckCode = 0;
    int len = data.Length;
    for (int i = 0; i < len; i++)
    {
    CheckCode ^= data[i];
    }
    return Convert.ToString(CheckCode, 16).ToUpper();
    }

    返回9E

    学习了一个上午 搞定了 决定分享下 希望能帮助的到刚接触的同学

  • 相关阅读:
    使用SoapUI发送Post请求
    webservice wsdl地址
    BurpSuite(二) proxy 模块
    BurpSuite(一)工具介绍
    Windows下配置DVWA
    .Net WebApi 支持跨域访问使用 Microsoft.AspNet.WebApi.Cors
    小程序学习 (一) 入门准备
    学习EChart.js(四) 移动端显示
    JQuery 获取select 的value值和文本值
    JS 获取URL参数
  • 原文地址:https://www.cnblogs.com/linyijia/p/7928272.html
Copyright © 2011-2022 走看看