校验码(主要为海明码)
来源:互联网 发布:潘粤明 跨界歌王知乎 编辑:程序博客网 时间:2024/04/30 07:22
今天讲校验码。有些问题讲前似乎很清楚,但讲的过程中发现思路还不是那么清楚。此处再回顾一下。
一、码字和码距问题。
由若干位代码组成的一个字叫做码字。
一种码制是若干种码字的组合。
将两个合法码字逐位比较,不同二进制数的位数成为两个码字间的距离。
一种码制中,各码字间的最小距离称为该码制的“码距”。
例如,8位补码,码字是8位二进制组成的字,不同码字最少1位不同,故码距为1。再如奇偶校验,9位的奇偶校验可以表示的合法码字共28个,另外28个为非法码字。一个合法码字要变到另外一个合法码字,至少要有两位同时变化,所以码距为2。
为了增加码制的码距,要加入校验位,校验位和数据位组成“码字”。 如海明码中的码字包括数据位和校验位。
二、交叉奇偶校验
交叉奇偶校验中,如果传输的数据1位发生了错误,则可以定位到错误。可以检测到两个位同时发生错误,无论它们位于同行、同列还是不同行列。但是不能保证发现4位同时出错,如四位构成长方形。
三、海明码
1、海明码的基本原理及计算方法
假定海明码为m位,其中信息码n位,校验码k位。k位校验位共2k个组合,1个用来表示传输信息无误,k个用来表示某个校验位出错,n个用来表示某个数据位出错。
2、校验
因为校验位的计算公式通过相关数据位的异或得到,当相关数据位出错时,会引起Si(相关公式参考课件)变为1。因为数据位的海明码下标正好可分解为相关校验位的加权和,通过构成的值可判断出错的数据位。
海明码中,如果仅有一个Si为1,除了相应校验位可能出错外,也可能同时三位海明码出错,例如 D1、D2、P3错会使S2为1,D1、D5、P4错也会使S2为1,虽能检测到错误,但错误位置不确定。
推广海明码中,因为附加校验位的引入,码距变为4。当出现两个Si为1时,肯定是两位海明码出错,但无法定位错误。
四、CRC校验码
相对比较简单,注意出错时余数的循环。
- 校验码(主要为海明码)
- 海明码--校验码
- 海明码校验码
- 校验码:奇偶校验,海明码,CRC
- 校验码(奇偶码、海明码和循环冗余码)图片版
- 常用校验码(奇偶校验码、海明校验码、CRC校验码)
- 常用校验码(奇偶校验码、海明校验码、CRC校验码)
- 常用校验码(奇偶校验码、海明校验码、CRC校验码)
- 常用校验码(奇偶校验码、海明校验码、CRC校验码)
- 常用校验码(奇偶校验码、海明校验码、CRC校验码)
- 海明码(一)
- 海明码(二)
- 海明码
- 海明码
- 海明码
- 海明码
- 海明码
- 海明码
- 重新发一下,职位收藏器
- VB 动态添加删除控件汇总
- Android属性系统
- 杂记
- Sql server STUFF的用法
- 校验码(主要为海明码)
- Birdie Developer Framework (一) 平台接口
- 6.2.3 Spring 2.5配置文件详解
- android中采用SAX方式解析XML
- FLEX radiobutton更换为自己的图标
- Android应用程序获得root权限
- zoj 1133 Smith Numbers
- 【叶子函数分享一】去除字符串中的html标记及标记中的内容
- hdu 1106 排序