




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三 crc校验一、crc校验码的基本原理编码过程:crc校验码的编码方法是用待发送的二进制数据t(x)除以生成多项式g(x),将最后的余数作为crc校验码。其实现步骤如下: 1 设待发送的数据块是m位的二进制多项式t(x),生成多项式 为r阶的g(x)。在数据块的末尾添加r个0,数据块的长度增 加到m+r位。 2 用生成多项式g(x)去除 ,求得余数为阶数为r-1的二进制 多项式y(x)。此二进制多项式y(x)就是t(x)经过生成多项式 g(x)编码的crc校验码。 3 将y(x)的尾部加上校验码,得到二进制多项式 。 就是包含 了crc校验码的待发送字符串。解码过程: 从crc的编码规则
2、可以看出,crc编码实际上是将代发送的m位二进制多项式t(x)转换成了可以被g(x)除尽的m+r位二进制多项式所以解码时可以用接收到的数据去除g(x),如果余数位零,则表示传输过程没有错误;如果余数不为零,则在传输过程中肯定存在错误。许多crc的硬件解码电路就是按这种方式进行检错的。同时,可以看做是由t(x)和crc校验码的组合,所以解码时将接收到的二进制数据去掉尾部的r位数据,得到的就是原始数据。解码过程示例:运行结果:附录(实现代码):using system;using system.collections.generic;using system.text;namespace crc
3、public abstract class change / / 字节数组转进制 / / 字节数组 / 字节数组长度 public static string bytetohex(byte bytes, int b1) string returnstr = ; if (bytes != null) for (int i = 0; i b1; i+) returnstr += bytesi.tostring(x2).toupper(); return returnstr; / / 16进制转字节数组 / / 16进制数 public static byte hextobyte(string he
4、xstr) hexstr = hexstr.replace( , ); if (hexstr.length % 2) != 0) hexstr += ;/空格 byte bytes = new bytehexstr.length / 2; for (int i = 0; i bytes.length; i+) bytesi = convert.tobyte(hexstr.substring(i * 2, 2), 16); return bytes; / / 字符串转进制 / / 字符串 / public static string strtohex(string str) if (str =
5、) return ; byte btemp = system.text.encoding.default.getbytes(str); return bytetohex(btemp, btemp.length); / / 16进制转字符串 / / 16进制 / public static string hextostr(string str) byte bytes = new bytestr.length; bytes = hextobyte(str); return encoding.default.getstring(bytes); namespace crc /哈夫曼树 150 / 结点
6、类node的定义如下: public class node private int weight; /结点权值 private int lchild; /左孩子结点 private int rchild; /右孩子结点 private int parent; /父结点 /结点权值属性 public int weight get return weight; set weight = value; /左孩子结点属性 public int lchild get return lchild; set lchild = value; /右孩子结点属性 public int rchild get ret
7、urn rchild; set rchild = value; /父结点属性 public int parent get return parent; set parent = value; /构造器 public node() weight = 0;lchild = -1; rchild = -1; parent = -1; /构造器 public node(int w, int lc, int rc, int p) weight = w; lchild = lc; rchild = rc; parent = p; public class huffmantree private list
8、data = new list(); /结点数组 private int leafnum; /叶子结点数目 /索引器 public node thisint index get return dataindex; set dataindex = value; /叶子结点数目属性public int leafnum public int leafnum get return leafnum; set leafnum = value; /构造器 public huffmantree() public huffmantree(list m_numkind) leafnum = m_numkind.c
9、ount; for (int j = 0; j 2 * m_numkind.count - 1; j+)/n中字符共需要2n-1个节点 node databuff = new node(); if (j this.leafnum) databuff.weight = m_numkindj.num; data.add(databuff);/每创建一个节点将节点加入节点数组data当中 public list create() int max1, max2, tmp1, tmp2; /处理n个叶子结点,建立哈夫曼树 for (int i = 0; i this.leafnum - 1; +i) m
10、ax1 = max2 = int32.maxvalue; tmp1 = tmp2 = 0; /在全部结点中找权值最小的两个结点 for (int j = 0; j this.leafnum + i; +j) if (dataj.weight max1) & (dataj.parent = -1) max2 = max1; tmp2 = tmp1; tmp1 = j; max1 = dataj.weight; else if (dataj.weight max2) & (dataj.parent = -1) max2 = dataj.weight; tmp2 = j; datatmp1.parent = this.leafnum + i; datatmp2.parent = this.leafnum + i; datathis.leafnum + i.weight = datatmp1.weight + datatmp2.weight; datathis.leafnum + i.lchild = tmp1; datathis.leafnum + i.rchild = tmp2; return data; public class numkindchar public char letter get; set; /字符 p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江七台河市2025年高二物理第二学期期末统考模拟试题含解析
- 2025届河南省驻马店市名校高二物理第二学期期末教学质量检测模拟试题含解析
- 2025届浙江省丽水地区四校 高二物理第二学期期末调研试题含解析
- 2025年四川省眉山市第一中学物理高二下期末复习检测模拟试题含解析
- 2025届山东省枣庄市第四十一中学物理高二下期末复习检测试题含解析
- 二零二五年地产广告VI视觉形象设计服务合同
- 2025版场反应技术风险投资与孵化合同
- 2025版班组工前会工后会记录规范及培训服务合同
- 2025版上市保荐人尽职调查与风险评估专业服务合同
- 2025版不良资产处置与资产优化专项法律服务合同
- 第二章有理数及其运算总结专练2023-2024学年鲁教版(五四制)数学六年级上册
- 2024汽车租赁合同协议可打印
- 2023-2024学年山东省菏泽市东明县八年级(下)期末数学试卷(含答案)
- 光伏电站施工管理要点培训
- 初高中物理衔接讲座(初高中物理对比)
- 2024上海纺织工业职工大学教师招聘考试笔试试题
- 2024年家庭教育指导师考试(重点)题库及答案(含各题型)
- GB/T 14048.11-2024低压开关设备和控制设备第6-1部分:多功能电器转换开关电器
- 小学科学考查方案
- 2023-2024学年江苏省苏州市小升初语文真题重组卷(部编版)
- 工业互联网平台赋能 产业链供应链白皮书
评论
0/150
提交评论