matlab实现BCC异或,C#编程之C# BCC异或校验法
本文主要向大家介紹了C#編程之C# BCC異或校驗法,通過具體的內容向大家展示,希望對大家學習C#編程有所幫助。
通訊協議中最后一位是校驗位
采用BCC(異或校驗)法
這個怎么解釋?
就是 把16進制的字符串轉換成byte[]數據,依次拿出來進行異或一下 然后返回的值和校驗位對比下 看看對不對
例如:
232301FE313233343536373839303132333435363701001E0F01021226270001383938363032623531333136353033393731363001009E
最后一位是9E 十進制為 158
那么我們就截取9E前面部分
232301FE313233343536373839303132333435363701001E0F0102122627000138393836303262353133313635303339373136300100
傳入方法
///
/// BCC和校驗代碼
///
/// 需要校驗的數據包
///
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進制
///
/// BCC和校驗代碼返回16進制
///
/// 需要校驗的數據包
///
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
本文由職坐標整理并發布,希望對同學們有所幫助。了解更多詳情請關注職坐標編程語言C#.NET頻道!
總結
以上是生活随笔為你收集整理的matlab实现BCC异或,C#编程之C# BCC异或校验法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 发送微信请求失败的原因,微信小程
- 下一篇: php实现微信清粉功能,PHP实现微信提