将一个字符串计算出CRC16/XMODEM校验码(4位)

unsigned short CRC16_XMODEM(unsigned char *puchMsg, unsigned int usDataLen)
{unsigned short wCRCin = 0x0000;unsigned short wCPoly = 0x1021;unsigned char wChar = 0;while (usDataLen--) {wChar = *(puchMsg++);wCRCin ^= (wChar << 8);for (int i = 0; i < 8; i++) {if (wCRCin & 0x8000)wCRCin = (wCRCin << 1) ^ wCPoly;elsewCRCin = wCRCin << 1;}}return (wCRCin);
}
void test_CRC16_Xmode()
{unsigned char data[15];// 980012010001123456785A2608CE23data[0] = 0x98;data[1] = 0x00;data[2] = 0x12;data[3] = 0x01;data[4] = 0x00;data[5] = 0x01;data[6] = 0x12;data[7] = 0x34;data[8] = 0x56;data[9] = 0x78;data[10] = 0x5A;data[11] = 0x26;data[12] = 0x08;data[13] = 0xCE;data[14] = 0x23;char str1[128];sprintf(str1, "%X", CRC16_XMODEM(data, 15));printf("%s\r\n", str1);
}
int main()
{test_CRC16_Xmode();getchar();return 0;
}

结果:

在线计算校验码结果:

在线计算工具链接:https://blog.csdn.net/weibo1230123/article/details/81016643

将一个字符串计算出CRC16/XMODEM校验码(4位)相关推荐

  1. CRC-16/X25、CRC-16/CCITT_FALSE、CRC-16/XMODEM校验码

    这几天做北斗定位设备的协议解析,需要进行CRC-16的校验,设备使用的参数模型是CRC-16/X25,本人使用的是Java语言,网上没找到关于CRC-16/X25 的Java版本,都是C语言的多.转换 ...

  2. Java生成CRC16数据校验码

    CRC即循环冗余校验码(Cyclic Redundancy Check[1]  ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数 ...

  3. crc16的c语言函数 计算ccitt_求一个C语言实现的CRC16/CCITT-FALSE校验码函数

    匿名用户 1级 2017-02-20 回答 //函数功能:计算CRC16 //参数1:*pData 16位CRC校验数据, //参数2:nLength 数据流长度 //参数3:init 初始化值 // ...

  4. 16进制字符串生成CRC-16/CCITT-FALSE校验码

    /*** @author yichuan@iscas.ac.cn* @version 1.0* @date 2021/11/8 21:51*/ public class Crc {/*** CRC-1 ...

  5. PHP CRC16 校验码的算法怎么使用

    PHP CRC16 校验码的算法如何使用 最近用到CRC16, 我现在就是要把 010301180001 算出CRC16的校验码,通过其他工具,可以得到 校验码是 05F1 最后完整的代码就是 010 ...

  6. CRC校验码计算,以常用CRC-8为例

    CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定. CRC校验原理:在要发送的帧后面附加一个数,生成一个新帧发送给接收端.它要使所生成的新帧 ...

  7. c语言rtu crc16,Modbus-RTU-crc16校验方法C语言实现

    为确保消息数据的完整性,除了验证消息CRC之外,建议实现检查串行端口(UART)成帧错误的代码.如果接收消息中的CRC与接收设备计算的CRC不匹配,则应忽略该消息.下面的C语言代码片段显示了如何使用逐 ...

  8. C语言版CRC-16系列校验算法

    一.CRC16校验码的使用 现选择最常用的CRC-16校验,说明它的使用方法. 根据Modbus协议,常规485通讯的信息发送形式如下: 地址 功能码 数据信息 校验码 1byte 1byte nby ...

  9. 已知信码序列为1011_专升本计算机网络:校验码

    1. 采用 4 相 PSK 调制,数据传输速率为 4800bps ,其码元速率是多少? 2.4 采用数字信号传输模拟信号时, 模拟数据的最大频率为 1200Hz , 则采样信号频率最 小应为多少. 6 ...

最新文章

  1. CSP 202006-2 稀疏向量 python实现(非满分)(待更新)
  2. linux shell nr,awk中NR和FNR的区别小结和实例演示
  3. Java Review - 使用Timer时需要注意的事情
  4. 2021暑假每日一题 【week4 完结】
  5. 【静态站点(二)】之 Gridsome 基础
  6. ubuntu openssl1.0.2g交叉编译
  7. ARMs3c2440开发板挂接NFS服务
  8. 超好用的IDEA插件汇总
  9. day_05、内置函数、匿名函数
  10. 地理探测器GeoDetector
  11. KVM vCPU创建过程
  12. 做职场里的“超级英雄”,需要怎样的盔甲与工具?
  13. 研究意识问题为什么如此困难
  14. 抖音sdk接口API调用-关注与取消关注抖音号
  15. 安装spss破解版以及spss安装之后提示我程序无法启动,因为应用程序的并行配置不正确
  16. 在 LaTeX 中创建文档
  17. (78)--用框架爬取招聘信息
  18. Java自学笔记Day22
  19. 开发微信小程序的优势有哪些?
  20. Postman如何导出接口,学会这招后台开发再交接工作时,保准不被喷!

热门文章

  1. jsp+servlet 导出Excel表格
  2. 分布式系统和集群的区别
  3. HTML5/CSS3/JavaScript
  4. 使用beanUtils操纵bean的属性
  5. c# 索引器基础理论
  6. 购买阿里云服务器地域如何选择?
  7. 闯荡北京卖枣的临县人:同有一个“红枣美梦”(2张)
  8. 基于自编码器的表征学习:如何攻克半监督和无监督学习?
  9. 设计模式--装饰者模式
  10. Jexus部署.Net Core项目