最新新遇到设备采用CRC-CCITT 标准CRC16(1021),网上很多相关文章,但是大都结果不对。以下代码来自https://bbs.csdn.net/topics/390876846回答中的代码

代码如下:

public static String getCRC16_CCITT(String Source)

{

int crc = 0xFFFF;          // initial value

int polynomial = 0x1021;   // 0001 0000 0010 0001  (0, 5, 12)

String tmp = "";

byte[] bytes = new byte[Source.Length / 2];

for (int i = 0; i < Source.Length - 1; i++)

{

if (i % 2 == 0)

{

tmp = Source.Substring(i, 2);

bytes[i / 2] = (byte)Int16.Parse(tmp, System.Globalization.NumberStyles.HexNumber);

}

}

foreach (byte b in bytes)

{

for (int i = 0; i < 8; i++)

{

bool bit = ((b >> (7 - i) & 1) == 1);

bool c15 = ((crc >> 15 & 1) == 1);

crc <<= 1;

if (c15 ^ bit) crc ^= polynomial;

}

}

crc &= 0xffff;

string strDest = crc.ToString("X");

return strDest;

}

测试:

02383638343734303435383131393731301909062046375D1104400000

得出结果为:F5E3

标签:tmp,CCITT,1021,String,CRC16,Source,int,crc,byte

来源: https://blog.csdn.net/feigning/article/details/100592215

crc16-ccitt算法c语言,CRC-CCITT 标准CRC16(1021) 算法校验类相关推荐

  1. php 红包算法,PHP语言:实现微信红包拆分算法

    本文主要向大家介绍了PHP语言:实现微信红包拆分算法,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. · 修复最后一个红包输出未保留2位数 · 修复领取的红包金额低于最小红包限制 * 红 ...

  2. 人工免疫算法c语言实例,毕业设计_蚁群算法模拟系统的设计与实现.doc

    J I A N G S U U N I V E R S I T Y 本 科 毕 业 论 文 蚁群算法模拟系统的设计与实现 Ant Colony Simulation System Design and ...

  3. 栅格法路径算法C语言,基于地图栅格与QPSO算法结合的机器人路径规划方法与流程...

    本发明属于机器人路径规划领域,提出一种基于地图栅格与QPSO结合的机器人路径规划方法. 背景技术: 移动机器人路径规划是寻找一条无碰撞的可行路径问题的方法.近些年,群智能优化算法逐渐成为移动机器人路径 ...

  4. 【数据结构与算法——C语言版】1. 数据结构与算法简介

    概念 数据结构:"一组数据的存储结构" 算法:"操作数据的一组方法" 数据结构是为算法服务的,算法是要作用再特定的数据结构上的. 简言之,在编程实践中,我们可能 ...

  5. 机械臂运动学算法c语言,6轴工业机械臂运动学算法(C++) 六轴机械臂运动学源码 - 下载 - 搜珍网...

    6轴工业机械臂运动学算法 6轴工业机械臂运动学算法\.cproject 6轴工业机械臂运动学算法\.project 6轴工业机械臂运动学算法\.settings 6轴工业机械臂运动学算法\.setti ...

  6. 极值跟踪算法 c语言,快速约束极值子空间跟踪算法_魏志强.pdf

    快速约束极值子空间跟踪算法_魏志强 34 4 Vol. 34 No. 4 第 卷第 期 华 北 水 利 水 电 学 院 学 报 2013 8 Journal of North China Instit ...

  7. pbkdf2 算法 C语言实现,密码学基础之PBKDF2算法

    站点登录需要输入用户名和密码,而密码属于个人敏感数据,应当只保存密码的单向哈希值.简单的哈希值,无法防止彩虹表攻击,使用基于口令的密钥派生算法PBKDF2可以解决这种问题. PBKDF2 需要以下输入 ...

  8. 快速pow算法c语言_嵌入式必知基础算法(二)

    七.二分法 在一个数组中,知道一个数值,想确定他在数组中的位置下标,如数组:A[5] = {1,2,6,7,9};我知道其中的值为6,那么他的下标位置就是3. 八.限幅滤波法 对于随机干扰 , 限幅滤 ...

  9. c语言顺序查找算法,c语言实现排序和查找所有算法

    c语言版排序查找完成,带详细解释,一下看到爽,能直接运行看效果. /* Note:Your choice is C IDE */ #include "stdio.h" #inclu ...

  10. 决策树C4.5算法 c语言实现,数据挖掘十大经典算法(1) C4.5_决策树算法

    数据挖掘十大经典算法(1) C4.5_决策树算法 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每 ...

最新文章

  1. 浅谈几种区块链网络攻击以及防御方案之女巫攻击
  2. python之字符串的切片操作
  3. 使用poll实现的io多路复用服务端和客户端
  4. 都在说云原生,它的技术图谱你真的了解吗?
  5. oracle数据库报错: ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
  6. python的help怎么用_python的help函数如何使用
  7. Android四大组件---Activity
  8. DEP机制的保护原理
  9. 机器博弈 (一) 入门简介
  10. 在C#中控制ListBox某一行的字体颜色
  11. 共享经济开始崩溃,区块链能否再续共享经济神话?
  12. 小钛掐指一算,今年的尖货市场不简单 | 活动预告
  13. 2021国防科技大学计算机学院无军籍考研经验贴
  14. 电感耦合等离子体光源(ICP)
  15. 2014522420145238《信息安全系统设计基础》实验五
  16. 一个免费获得5年虚拟主机的方法
  17. 项目经理如何开展工作
  18. 计算机科学导论第五章计算机组成 学习笔记+习题答案
  19. 新疆自治区谷歌地球高程DEM等高线下载
  20. html自动刷新 idea,idea新建css idea怎么刷新导入的css

热门文章

  1. 阿里技术类面试真题,你能做对几个?(含答案)
  2. 微信界面Android实现
  3. 某最新《手绘POP插画完整详解》
  4. 将项目部署到云服务器上
  5. mysql数据写入磁盘的原理_WAL(Write Ahead Log)机制解析
  6. WebRTC学习实现视频
  7. 计算机组成原理复习要点与考题类型--选择-填空-分析-计算-简答
  8. 如何录制自己手机视频
  9. 4月想跳槽的同学,没有更好的选择,可以去美团
  10. thinkphp5.1 || 给图片添加文字,图片水印