CRC原理

计算方式如下图所示,若除数为n位,待校验的数据为k位,则先在待校验的数据后面添加n-1个0,然后再和除数进行模2除法,所谓模2除法,其实就是将竖式运算中的减法改为异或运算。

C代码实现

#include <iostream>
#include<stdio.h>
using namespace std;int P[4]={1,0,1,1};void XOR(int a[4],int b[4]){for(int i=0;i<4;i++){if(a[i]==1){if(b[i]==1){a[i]=0;}else{a[i]=1;}}else{if(b[i]==0){a[i]=0;}else{a[i]=1;}}}
}void print_result(int a[4]){printf("result:\n");for(int i=3;i>=0;i--){printf("%d ",a[i]);}printf("\n");
}void crc(int X[9],int FCS[3]){int result[4];int t=4;for(int i=0;i<4;i++){result[i]=X[9-(4-i)];}XOR(result,P);print_result(result);while(1){printf("t=%d,shift\n",t);for(int i=4-1;i>=1;i--){result[i]=result[i-1];}result[0]=X[t--];if(result[3]==1){XOR(result,P);}else{;//和0000异或,即恒等运算}//print resultprint_result(result);if(t<0){for(int i=0;i<3;i++){FCS[i]=result[i];}break;}}
}int main()
{int X[9]={0,0,0,1,0,0,1,0,1};                   //结果应为001int Y[9]={0,0,0,0,1,1,0,1,1};                   //结果应为111int FCS[3];crc(Y,FCS);//cout<<"final result=";cout <<FCS[2]<<" "<<FCS[1]<<" "<<FCS[0]<<endl;return 0;
}

CRC循环冗余校验码的C语言实现相关推荐

  1. CRC循环冗余校验码总结

    一.CRC简介 先在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclical Redundancy Check,简称CRC,它是利用除法及余数的原理来作错误侦测(Error Detecting ...

  2. CRC 循环冗余校验码 的计算方法

    循环冗余校验CRC(Cyclical Redundancy Check)字段位于尾部,有32位,有时称为IEEE/ANSI标准的CRC32.要使用一个n位CRC监测 数据传输错误,被检查的消息首先要追 ...

  3. 16位CRC循环冗余校验码生成函数

    16位的CRC校验码生成,可使用以下函数: //16位CRC校验码生成 //返回值:CRC校验码 unsigned int CRC_check(unsigned char *addr,int num) ...

  4. 循环冗余校验码CRC原理和实例

    今天同事问了一个CRC(循环冗余校验码)的问题,好奇心之下学习了一下. 首先说它的原理,百度百科上也有,我就简单说一下,它其实就是采用多项式编码的方法,对于要发送的信息码R,发送方和接收方约定好多项式 ...

  5. CRC循环冗余校验是如何纠错的

    引言 昨天同学突然问我CRC循环冗余校验是如何纠错的?我突然大脑一片空白,学过校验码自然知道CRC循环冗余校验码是可以检错和纠错,但是仿佛只知道求出检验码和检错的过程,但是不知道如何纠错的过程,查询书 ...

  6. CRC冗余校验码源码代码c语言,循环冗余校验码(CRC)应用总结(包括C++源码)

    最近在实习期间需要用到数据的校验,所选为CRC16,那么就在此总结一番吧. 现在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclical Redundancy Check,简称CRC,它是利用 ...

  7. 循环冗余校验码CRC,求解步骤

    循环冗余校验码CRC,是软考-计算机组成原理 中一种重要的编码. 下面只是简要描述求解CRC码的解题步骤,面向有一定理论基础的朋友. 直接看例题. 例.信息位: 10100110   生成多项式: 解 ...

  8. 第二章 数据的表示和运算 2.1.6 循环冗余校验码/CRC码 [计算机组成原理笔记]

    第二章 数据的表示和运算 2.1.6 循环冗余校验码/CRC码 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 循环冗余校验码/ ...

  9. 计算机组成原理:循环冗余校验码CRC具备“一位纠错”功能的思考与探索

    笔者在阅读华中科技大学谭志虎老师主编的<计算机组成原理(微课版)>教材进行复习时,产生了一个疑问,并针对性地进行了一些思考.欢迎广大复习到这里同样有问题的同学(寒假开学接着考试实在有点汗, ...

  10. 计算机系统基础知识——循环冗余校验码(CRC)

    前言:循环冗余校验码(cyclie redundancy check)简称CRC(循环码),是一种能力相当强的检错.纠错码,并且实现编码和检码的电路比较简单,常用于串行传送(二进制位串沿一条信号线逐位 ...

最新文章

  1. 函数、装饰器、迭代器、内置方法总练习题
  2. SAP UI5日期字段的显示逻辑和用法
  3. 广州 adobe 技术者开发日回归
  4. java gt_JAVA泛型知识--gt; lt;? extends Tgt;和lt;? super Tgt;
  5. mysql公告信息管理系统_JSP班级公告管理系统+mysql 班级公告管理系统 - 下载 - 搜珍网...
  6. java打印计算机_在Java程序中实现高精度打印
  7. Codeforces Round #378 (Div. 2) D. Kostya the Sculptor 分组 + 贪心
  8. hdu1829 A Bug's Life
  9. 我的生信自学心得分享
  10. 【学习笔记】大数据可视化简介
  11. KingRoot换成Supersu的方法
  12. Golang实现IP地址匹配
  13. 开网店必看:母婴类目怎么做?
  14. 调用浏览器下载图片 java实现
  15. python-selenium登陆今日头条
  16. linux yum安装rar解压软件
  17. 如何在linux上开发安卓软件,使用Xamarin在Visual Studio中开发Android应用
  18. arduino yun 京东_Arduino编程从零开始 使用C和C++(第2版)简介,目录书摘
  19. 一加3T viper4android,哈曼卡顿Cortana智能音箱外观/内部规格全曝光
  20. Canvas颜色渐变效果

热门文章

  1. 博图注册表删除方法_win7系统鼠标右键刷新反应慢原因【解决方法】
  2. 图片文字识别python
  3. 百万调音师—AU效果器基本应用
  4. 20+非常棒的Photoshop卡通设计教程
  5. TPLink 无线网卡模拟AP无法上网问题
  6. sast/dast/iast对比介绍
  7. 同程旅行 IAST 实践
  8. 9.DLL的入口函数DllMain函数
  9. css3 眼珠旋转动画,CSS3小猫咪眼睛随鼠标移动动画特效
  10. 抖音特效转场模板预设 Premiere调色预设 PR光效转场等900个特效包(含教程及转场音效)