二进制CRC校验码生成程序
来源:互联网 发布:淘宝 修改差评 编辑:程序博客网 时间:2024/04/30 08:49
/**二进制CRC序列生成程序*/#include<stdio.h>#include<string.h>#define LEN_DIVIDEND 30#define LEN_DIVISOR 30#define LEN_SEQUENCE LEN_DIVIDEND+LEN_DIVISORvoid CRC(char*,char*,char*);void MOD2_div(char*,char*,char*);void move(char *,int);int main(){ char dividend[LEN_DIVIDEND];//被除数 char divisor[LEN_DIVISOR];//除数 char sequence[LEN_SEQUENCE];//CRC序列 freopen("in.txt","r",stdin); printf("请输入源序列:"); scanf("%s",dividend);printf("%s\n",dividend); printf("请输入检验码:"); scanf("%s",divisor);printf("%s\n",divisor); CRC(dividend,divisor,sequence); return 0;}void move(char *FCS,int len){ int i; char c=FCS[0]; for(i=0;i<len-1;i++){ FCS[i]=FCS[i+1]; } FCS[i]=c;}void MOD2_div(char *dividend,char *divisor,char *FCS){ int len_dividend=strlen(dividend); int len_divisor=strlen(divisor); int len_FCS=len_divisor-1; int i,j; for(i=0;i<len_divisor;i++) FCS[i]=dividend[i]; FCS[len_divisor]=0; printf("dividend=%s\n",dividend); printf("divisor=%s\n",divisor); printf("------------\n"); for(i=len_divisor;i<len_dividend+1;i++){ if(FCS[0]=='0'){ move(FCS,len_divisor); FCS[len_divisor-1]=dividend[i]; continue; } for(j=0;j<len_divisor;j++){ FCS[j]=(dividend[i-len_divisor+j]+divisor[j]-96)%2+48; } move(FCS,len_divisor);FCS[len_divisor-1]=dividend[i]; //FCS[j-1]=dividend[i]; printf("%s\n",FCS); } printf("------------\n"); FCS[len_divisor-1]=0;}void CRC(char *dividend,char *divisor,char *sequence){ char FCS[LEN_DIVISOR]; int len_FCS=strlen(divisor)-1; int i; strcpy(sequence,dividend); for(i=0;i<len_FCS;i++){ strcat(dividend,"0"); } MOD2_div(dividend,divisor,FCS); strcat(sequence,FCS); printf("FCS=%s\n",FCS); printf("sequence=%s\n",sequence);}
- 二进制CRC校验码生成程序
- crc校验码生成程序(C#)
- CRC校验码的生成编码
- CRC 实现,生成校验码和验证
- Modbus RTU CRC校验码生成代码
- CRC循环冗余校验码的生成
- CRC校验码生成与数据校验源码程序 (包括CRC-4,5,6,7,8,16,32)
- CRC-CCITT校验码的C程序
- CRC校验码
- CRC校验码
- CRC校验码
- CRC校验码
- CRC校验码
- CRC校验码
- 生成myEclipse校验码的程序
- AVR单片机CRC校验码的查表与直接生成
- 某个数据通信系统采用CRC校验方式,并且生成多项式的二进制比特序列为11001,目的结点接收到的二进制比特序列为 110111001(含CRC校验码)。请判断传输过程中是否出现了差错?为什么?
- CRC校验码的上位机计算程序和例子
- 异常处理
- Cocos2d-精灵的几个常识
- 哈希表总结
- java模式之装饰模式
- Hibernate面试
- 二进制CRC校验码生成程序
- 粒子编辑器Particle designer属性的介绍
- Cocos2dx下 基本的OpenGL ES 绘图
- C++中类的内存分布
- 机器人行走( * 某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字)。 例如,我们)
- 提高VS2010运行速度的技巧
- HibernateTemplate相关方法
- c++之浅谈const
- 如何在C++项目中引用Lib文件(VS2005)