CRC32使用的是查表法,CRC8使用的是按位计算法,在QT5.5.1下实现了代码,但是可以移植到其它平台同样可以运行。

CRC32

使用的CRC-32:
参数模型:x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
多项式(hex):04C11DB7
计算CRC初始值(hex): FFFFFFFF
计算结果异或值(hex): FFFFFFFF

输入Ascii:123456789
结果(hex):CBF43926

CRC8

使用的CRC-8/MAXIM:
参数模型: x8+x5+x4+1
多项式(hex):31
计算CRC初始值(hex):00
计算结果异或值(hex): 00

输入Ascii:123456789
结果(hex):A1
参考计算网页:CRC(循环冗余校验)在线计算

#include <QCoreApplication>
#include <iostream>
using namespace std;
unsigned long CRC32Table[256];static void CRC32TableCreate(void)
{unsigned int c;unsigned int i, j;for (i = 0; i < 256; i++) {c = (unsigned int)i;for (j = 0; j < 8; j++) {if (c & 1)c = 0xedb88320L ^ (c >> 1);elsec = c >> 1;}CRC32Table[i] = c;}}
static unsigned int CRC32Calculate(void *pBuf ,unsigned pBufSize)
{unsigned int retCRCValue=0xffffffff;unsigned char *pData;pData=(unsigned char *)pBuf;while(pBufSize--){retCRCValue=CRC32Table[(retCRCValue ^ *pData++) & 0xFF]^ (retCRCValue >> 8);}return retCRCValue^0xffffffff;
}
static unsigned char CRC8Calculate(void *pBuf ,unsigned pBufSize)
{unsigned char retCRCValue=0x00;unsigned char *pData;int i=0;unsigned char pDataBuf=0;//  retCRCValue=0x01;pData=(unsigned char *)pBuf;// pDataBuf=pData[0];// cout<<hex<<pDataBuf<<endl;while(pBufSize--){pDataBuf=*pData++;for(i=0;i<8;i++){if((retCRCValue^(pDataBuf))&0x01){retCRCValue^=0x18;retCRCValue>>=1;retCRCValue|=0x80;//    printf("i=%d;retCRCValue=%x\n",i,retCRCValue);}else{retCRCValue>>=1;//     printf("i=%d;retCRCValue=%x\n",i,retCRCValue);}pDataBuf>>=1;}}return retCRCValue;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);unsigned char Num[9]={'1','2','3','4','5','6','7','8','9'};CRC32TableCreate();cout<<"CRCCalculatValue:"<<hex<<CRC32Calculate(Num,9)<<endl;printf("CRCCalculatValue:%x\n",CRC8Calculate(Num,9));return a.exec();
}

CRC32和CRC8校验代码,C语言版相关推荐

  1. 【转载】CRC32校验算法C语言版(查表法)

    先放原文链接:CRC32校验算法C语言版(查表法) 这几天搞串口通信,用到CRC32,把以前用到的东西整理一下,方便以后使用. STM32F103 芯片自带的CRC32硬件算法,匹配上位机CRC32算 ...

  2. 餐厅管理系统代码c语言,酒店管理系统代码(C语言版)

    <酒店管理系统代码(C语言版)>由会员分享,可在线阅读,更多相关<酒店管理系统代码(C语言版)(7页珍藏版)>请在人人文库网上搜索. 1.include #include #i ...

  3. CRC-32,CRC-8校验c++实现

    把网上找的代码整理了一下,经验证好用~^ 代码来源: https://www.cnblogs.com/lzsz1212/archive/2013/02/26/2933935.html https:// ...

  4. vs五子棋c语言代码,五子棋代码C语言版.doc

    #include #include #include #include #include struct rcd;//声明节点结构 typedef struct rcd* Record;//节点指针别名 ...

  5. 门诊挂号c语言程序代码,C语言版医院管理系统

    #include "stdio.h" #include "string.h" #include "stdlib.h" #include &q ...

  6. Mongo DB Codex Debug 代码-Python语言版-立哥开发

    Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type ...

  7. 酒店管理系统的代码c语言,酒店管理系统代码C语言版.doc

    #include #include #include //房间信息结构体 struct Node { int Count; //指示该房间有多少个房客 char nameOne[20]; //房客1的 ...

  8. crc8 c语言代码,C的CRC8校验的源代码

    C的CRC8校验的源代码: //   CRC8校验 //   X^8   +   X^2   +   X^1   +   1 unsigned   int   code   CRC8_TAB[256] ...

  9. c语言折半查找输出坐标,数据结构(C语言版)——有序表查找(折半查找)(代码版)...

    数据结构(C语言版)--有序表查找(折半查找)(代码版) 数据结构(C语言版)--有序表查找(折半查找)(代码版) #include #include #define ERROR 0 #define ...

最新文章

  1. python爬虫简单实例-这个Python爬虫的简单入门及实用的实例,你会吗?
  2. 【备忘录】使用mongodb,报db.collection is not a function
  3. 更新失败无法连接更新服务器未响应,逆水寒客户端更新失败_长时间停滞未响应相关问题解答[图]...
  4. 深入剖析Redis系列(五) - Redis数据结构之字符串
  5. 阿里云SDK再升级,宣布支持C++语言
  6. 1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三
  7. 高德地图10.0版本正式发布,升级为国民出行平台
  8. php键名相加,php二维数组相同键名相加实例
  9. [HDOJ]1018. Big Number
  10. blender国内下载
  11. ps使用教程 核心蒙版
  12. java基于for、while循环经典案例题(仅供参考)
  13. Maven查看当前生效配置、pom、环境变量等命令(mvn help用法)
  14. 对序列化器、“对象”的理解
  15. cesium添加填充_cesium实现注记功能
  16. 耶鲁大学开放课程:《金融市场》第3课
  17. 一文了解无聊猿(BAYC)的 NFT 帝国是如何形成的
  18. MyBatis遇到:There is no getter for property named ‘Xxx‘ in ‘class xxx.xxx.Xxx‘问题
  19. 五年北京,这个改变我命运的城市,终于要离开了
  20. android蓝牙底层通道,底层之旅——Android蓝牙系统分析

热门文章

  1. python百度ai文字识别、不精确、进行处理_基于百度AI的文字识别-Python
  2. 带你知道ENIAC的故事,第一台鼻祖计算机的诞生
  3. BDS全球卫星导航定位系统
  4. 中石油OJ: 美人松高度2
  5. Mac Android stuido 报错 Cannot run program “node“
  6. 青莲云董方:物联网世界到底是一种什么样的黑
  7. 我的世界在线服务器地址,我的世界1.7.2服务器ip_我的世界1.7.2服务器地址大全_好特教程...
  8. 获取弹出式窗口(对话框)句柄
  9. 广平县北方计算机第一届PS设计大赛
  10. python人脸检测怎么弄_如何通过python实现人脸识别验证