CCITTCRC-16计算原理与实现
7页1、wordCCITT CRC-16计算原理与实现 + message1; for (i = 0; i len; i+) if (i len - 2) for (j = 0; j = 7; j+) if (short)crc_reg 0) crc_reg = (crc_reg (7 - i) 0x1021; else crc_reg = (crc_reg (7 - i); else for (j = 0; j = 7; j+) if (short)crc_reg 0) crc_reg = (crc_reg 1) 0x1021; else crc_reg = 1; return crc_reg; 显然,每次内循环的行为取决于存放器首位。由于异或运算满足交换率和结合律,以与与0异或无影响,消息可以不移入存放器,而在每次内循环的时候,存放器首位再与对应的消息位异或。改良的代码如下: unsigned short do_crc(unsigned char *message, unsigned int len) int i, j; unsigned short crc_reg = 0; unsign
2、ed short current; for (i = 0; i len; i+) current = messagei 8; for (j = 0; j 8; j+) if (short)(crc_reg current) 0) crc_reg = (crc_reg 1) 0x1021; else crc_reg = 1; current = 1; return crc_reg; 以上的讨论中,消息的每个字节都是先传输MSB,CRC16-CCITT标准却是按照先传输LSB,消息右移进存放器来计算的。只需将代码改成判断存放器的LSB,将0x1021按位颠倒后(0x8408)与存放器异或即可,如下所示: Java代码 1. unsignedshortdo_crc(unsignedchar*message,unsignedintlen) 2. 3. inti,j; 4. unsignedshortcrc_reg=0; 5. unsignedshortcurrent; 6. 7. for(i=0;ilen;i+) 8. 9. current=messagei; 10. for(j=0;j1)0
《CCITTCRC-16计算原理与实现》由会员工****分享,可在线阅读,更多相关《CCITTCRC-16计算原理与实现》请在金锄头文库上搜索。
用加减消元法解二元一次方程组(二)》教学案
草莓又叫红莓
福建师范大学21春《小学生心理健康教育》在线作业二满分答案_47
自我介绍作文12篇(介绍自我的作文)
2022年广东省焊工(初级)考试内容及考试题含答案33
市政管理所二本年上半年工作总结
学校健康教育总结
幼儿园期末评语中班.doc
10种伤害心脏最厉害的习惯
电器有限公司安全生产管理制度1
大学酒店餐饮实习周记
普及视频公开课的意义和实现v3.0
我心中的母亲伯宁波
招商银行汽车贷款申请书
软件设计论文软件课程设计论文:利用CAXA实体设计软件提高中职《机械制图》教学效果
丰田公司的人力资源管理
一份船舶建造合同
【北师大版】一年级上册数学:第2课时 数与代数2 课时作业
视觉模拟评分法
人工膝关节置换术后康复指南
2023-04-06 13页
2023-11-08 5页
2023-09-24 50页
2023-03-12 7页
2023-08-18 9页
2023-01-24 2页
2023-07-19 9页
2023-09-13 27页
2023-01-08 8页
2023-10-19 3页