CRC校验码计算公式
CRC校验码计算公式
int CRC_Check(char *m_Data,short m_Size)
{
int i0,i1;
char CRC16Lo,CRC16Hi; //CRC寄存器
char SaveHi,SaveLo;
CRC16Lo = 0xFF;
CRC16Hi = 0XFF;
for(i0=0;i0<m_Size;i0++)
{
CRC16Lo = CRC16Lo ^ *(m_Data+i0); //每一个数据与CRC寄存器进行异或
for(i1=0;i1<8;i1++)
{
SaveHi = CRC16Hi;
SaveLo = CRC16Lo;
CRC16Hi >>=1; //高位右移一位
CRC16Lo >>=1; //低位右移一位
if((SaveHi & 1) == 1) //如果高位字节最后一位为1
{
CRC16Lo |=0x80; //则低位字节右移后前面补1
}
if((SaveLo & 1) == 1) //如果LSB为1,则与多项式码进行异或
{
CRC16Hi ^=0XA0;
CRC16Lo ^=1;
}
}
}
return ( CRC16Hi << 8 )| CRC16Lo;
}
CRC校验码计算公式相关推荐
- 基于表格的CRC校验码实现
关于CRC的理论计算方法不做赘述,本文介绍基于查表的CRC优化算法的实现. 常规计算方法是如何实现的? 理论方法不赘述,这里简单说明程序实现.因为要处理的信息可能非常长,所以直接使用除法指令是不可行的 ...
- 32位crc校验码程序_CRC码计算及校验原理的最通俗诠释
CRC校验原理 CRC校验原理看起来比较复杂,好难懂,因为大多数书上基本上是以二进制的多项式形式来说明的.其实很简单的问题,其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注 ...
- STM32开发 -- CRC校验码
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/79518638 通信协议里有CRC校验码,计算从报文的起始字节到报文内容最后一 ...
- 如何计算CRC校验码(循环冗余检验码)
1.什么是CRC校验 在数据通信领域,CRC(循环冗余检验码)常用的一种查错校验码,它的信息字段和校验字段的长度可以任意选定.它主要是通过对要传输的数据进行多项式计算,然后将得到的结果附在数据帧 ...
- CRC校验码计算,以常用CRC-8为例
CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定. CRC校验原理:在要发送的帧后面附加一个数,生成一个新帧发送给接收端.它要使所生成的新帧 ...
- 【信道编码/Channel Coding】CRC校验码
简介: 这是本专栏信道编码/Channel Coding的第四站,想对信道编码有一个系统性的认识可以看本专栏的 信道编码的整体框架 一文.而在本篇文章中,将介绍CRC校验码的基本原理. 目录 简介: ...
- C语言CRC校验码计算与校验
循环冗余校验(cyclicredundancy check,CRC)对传输序列进行一次规定的除法操作,将除法操作的余数附加在传输信息的后面.在接收端,也对收到的数据做相同的除法.如果接收端除法得到的结 ...
- Python—CRC校验码,计算2进制校验数据的校验码
有一些网站可以实现crc校验,但几乎均为国际标准没法修改,缺少自定义功能,在CSDN看到这篇文章的修改版,但我认为自定义功能仍然不完善,所以优化出一个二进制信息码,多项式不限的自定义CRC校验码程序. ...
- 16位CRC校验码计算,485MODBUS计算
CRC计算方法是: 1. 加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器. 2. 把第一个8位二进制数据(即通讯信息帧的第一个字节)与16位的CRC寄存器的相异或,异或的结果仍存放于该C ...
- 详述CRC校验码(附代码)
关注+星标公众号,不错过精彩内容 来源 | 一口Linux CRC校验应用比较广泛,通常在通信领域用的比较多,即便是自定义通信协议,也可以添加CRC校验码,使其通信更加可靠. 今天就来进一步描述CRC ...
最新文章
- HDU 2102 A计划
- python3.6下载百度云_Python3.6零基础入门与爬虫案例开发教程
- java 反射 int_Java 反射由浅入深 | 进阶必备
- 学python需要记笔记吗_开始学python,一些笔记
- 读《纸本书变电子书是很小的事》有感
- IMPORTANT: BizTalk Server 2004 fixes for Windows XP SP2 and .NET FW 1.1 SP1
- Java文件上传细讲,大厂 HR 如何面试
- html5学习笔记---05.JavaScript 中的面向对象,继承和封装
- 《梦断代码》阅读笔记之第0章和第1章
- jsp查询不到mysql内容_java查询到mysql数据库的数据,jspbean查询不到
- 【持续更新】java 指令释疑
- C#控制台应用程序执行结果一闪而过的解决方法
- 量化交易 均线、金叉死叉计算与交易策略
- TCP三次握手第三次握手时ACK丢失怎么办
- Cumt2020九月校赛 by 水一水
- 英語專家談英語學習認識方法
- C++排雷:19.过滤英文和中文标点符号,string与wstring之间的转换
- 高等数学(第七版)同济大学 习题9-4 (前11题)个人解答
- 华为前副总裁李一男正式出任百度CTO
- 洛谷 P4389 付公主的背包 多项式exp