以下样例为ASCII 请注意

//CRC - 16 / CCITT - FALSE  x16 + x12 + x5 + 1
unsigned short crc16(const unsigned char* data_p, unsigned char length) {
    unsigned char x;
    unsigned short crc = 0xFFFF;

while (length--) {
        x = crc >> 8 ^ *data_p++;
        x ^= x >> 4;
        crc = (crc << 8) ^ ((unsigned short)(x << 12)) ^ ((unsigned short)(x << 5)) ^ ((unsigned short)x);
    }
    return crc;
}

MFC下测试:

unsigned char test_buff[256];
    string str1 = "494cceebd5bbd952615796510a3bbd70";
    strcpy((char*)test_buff, str1.c_str());

unsigned int crc = crc16(test_buff, str1.length());

CString strRet = _T("");

strRet.Format(_T("%0x"), crc);

//strRet即为crc校验后的值

C++ CRC校验 CRC16 CCITT FALSE x16 + x12 + x5 + 1相关推荐

  1. java crc-16校验位 xmodem x16+x12+x5+1(0x11021)实现

    由于近期和硬件设备进行通信.涉及到了crc校验位.设备要求crc-16/xmodem进行校验. public static int CRC_XModem(byte[] bytes) {// initi ...

  2. java版本CRC校验(CRC-16/X25)

    由于最近在做硬件交互,硬件上发到服务器的报文需要,校验正确性 CRC(循环冗余校验)在线计算_ip33.com private static int crc16_ccitt_table[] = { 0 ...

  3. LabVIEW做CRC校验CRC-16/CCITT-FALSE算法

    一直以来用的CRC校验的地方就是Modbus通讯,这次做项目遇到一个自定义协议需要CRC校验的协议,直接连例程发现计算结果不对通讯不上.后来发现CRC有很多中算法,网上资料也不全面.以下是我收藏总结的 ...

  4. FPGA CRC-16/XMODEM x16+x12+x5+1

    module crc_16(input clk,input [47:0]mac,input rst,input hash_enable,//哈希控制器使能位output reg hash_comple ...

  5. 【个人学习总结】CRC校验原理及实现

    [个人学习总结]CRC校验原理及实现 一.CRC校验原理[理论篇] 1.硬核视频讲解[重点看,非常非常好!!!] 2.基础文章[略看] 3.深入文章!!![代码.查表法有点看不懂,跨越有点大] 理解重 ...

  6. 用c语言打电子算料,用C语言实现CRC校验计算

    在编写数据传输程序时,数据容错是一个非常重要的问题.循环冗余位校验(Cyclicl Redundncy Check英文简称CRC)是目前运用非常广泛的一种数据容错方法,在数据传输,数据压缩等领域运用极 ...

  7. CRC-16原理及通用的16位CRC校验算法代码

    CRC-16原理及通用的16位CRC校验算法代码 循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC.它是利用除法及余数的原理来作错误侦测(Error Detect ...

  8. crc16的c语言函数 计算ccitt_使用C语言实现CRC校验的方法

    CRC(Cyclic Redundancy Check)校验应用较为广泛,以前为了处理简单,在程序中大多数采用LRC(Longitudinal Redundancy Check)校验,LRC校验很好理 ...

  9. 全套CRC校验的算法

    尊重原作者的辛劳,转载只是为了收藏,以后能用得到,文章转载自:https://blog.csdn.net/cp1300/article/details/51443350 uint8_t crc4_it ...

最新文章

  1. 同一MODBUS读写多(两)个BH32角度传感器
  2. 拒绝服务(DoS)理解、防御与实现
  3. MybatisPlus性能分析插件
  4. 用python庆祝生日_生日到底该过阴历还是阳历好呢?不是迷信,都怪我们大意!...
  5. 简单的计算机英语文章,简单的英语小短文欣赏
  6. 《深入浅出DPDK》读书笔记(八):网卡性能优化(异步中断模式、轮询模式、混和中断轮询模式)
  7. linux 中添加kvm虚拟化,在 Centos7 的KVM上启用嵌套虚拟化
  8. 03单点登录CAS5.3.4集成客户端
  9. 打散线条lisp_《湘源修建性详细规划CAD系统》用户使用手册.doc
  10. ICMP协议(网际报文控制协议)详解
  11. java getbytes 不一样_(透彻)java String.getBytes()编码问题
  12. 电视机和计算机的显示器各使用什么扫描方式,扫描方式
  13. 明源售楼系统技术解析(五)开发商销控、客户自助查询
  14. 怎么修改Word每行文字间距
  15. 1《小学数学教材解读策略研究》课题研究方案
  16. mac android studio Waiting for application to come online解决方案
  17. 如何快速写作论文初稿?
  18. 手机虚拟化--人人都只用手机了
  19. mysql中如何创建数据和表
  20. 寻迹小车代码_活动 | 代码日记—计算机编程培训(泰达校区)

热门文章

  1. 2020下半年软件设计师上午真题及答案详解
  2. 不黑学社聘请王晓婷女士出任法律合规专门委员会主任孙溟㠭为王晓婷颁发聘书
  3. 电商spu与sku的概念
  4. 《SQL必知必会(第5版)》挑战题笔记 | 所用DBMS为Mysql,mysql workbench安装
  5. OK6410开发板linux系统下的SPI驱动和测试
  6. iPhone5有几种颜色 iPhone5哪个颜色好?
  7. 2021平南镇中高考成绩查询,2021年贵港中考录取分数线公布时间,贵港各高中录取分数线预测...
  8. USB3.0及NVME SSD安装WIN7X64
  9. 2019.9.1 拼多多 服务端研发-笔试(C++)
  10. matlab转换为部分分式,用MATLAB的residuez函数,求出下列各式的部分分式展开式和反变换f[n]。 说明:residuez函数...