奇偶校验简介

合集下载

奇偶校验电路的工作原理

奇偶校验电路的工作原理

奇偶校验电路的工作原理
奇偶校验是一种简单的校验码技术,用于检测和纠正数据传输错误。

奇偶校验电路的工作原理是:
1. 在数据的末尾添加一个额外的二进制位作为奇偶校验位。

2. 根据数据位中1的个数是奇数还是偶数,来设置校验位的状态。

3. 如果1的个数为奇数,则设置校验位为1;如果1的个数为偶数,则设置校验位为0。

4. 发送端对要传输的数据添加校验位后发送出去。

5. 接收端收到数据后,重新计算1的个数,与校验位对比。

6. 如果计算结果与校验位一致,则表示传输正确。

7. 如果计算结果与校验位不一致,则表示传输出错。

8. 通过简单的逻辑运算即可检测和纠正单位错误。

通过添加少量冗余码并简单地重复发送端的运算,奇偶校验可以有效地检测代码在传输过程中单位发生翻转的错误,从而提高数据传输的可靠性。

奇偶校验名词解释(一)

奇偶校验名词解释(一)

奇偶校验名词解释(一)奇偶校验1. 奇偶校验的定义和作用•奇偶校验是一种数据传输中常用的差错检测方法,通过给数据添加一个奇偶位来检测数据传输过程中产生的错误。

•奇偶校验的作用是检测传输中的数据是否出现错误,并进行纠错操作。

2. 相关名词解释奇偶位•奇偶位是指在进行奇偶校验时所需要添加到数据末尾的一位二进制数。

•根据数据中1的个数是奇数还是偶数,确定奇偶位的取值:奇数个1时奇偶位为0,偶数个1时奇偶位为1。

校验位•校验位是指用于奇偶校验的二进制数,用于检测数据传输过程中是否发生错误。

•校验位的取值由奇偶校验算法决定,通过计算数据中1的个数来确定。

校验和•校验和是一种用于奇偶校验的简化模型,通过对数据中所有位进行求和运算得到一个二进制数作为校验结果。

3. 示例解释奇偶位示例假设需要传输的数据为8位二进制数:。

通过奇偶校验方法,计算数据中1的个数为4个,为偶数个,因此奇偶位的取值为1。

添加奇偶位后的数据为。

校验位示例假设需要传输的数据为8位二进制数:。

通过奇偶校验算法,计算数据中1的个数为4个,为偶数个,因此校验位的取值为1。

添加校验位后的数据为。

校验和示例假设需要传输的数据为8位二进制数:。

计算数据中所有位(包括奇偶位)的和为8,转换为二进制数为1000。

校验和为1000。

总结奇偶校验是一种常用的差错检测方法,通过添加奇偶位来检测数据传输过程中的错误。

相关名词包括奇偶位、校验位和校验和。

奇偶位是计算数据中1的个数并确定取值的位,校验位是用于检测错误的二进制数,校验和是对所有位进行求和得到的结果。

通过奇偶校验方法,可以提高数据传输的可靠性和纠错能力。

奇偶校验与和校验

奇偶校验与和校验

和校验,常见的有如下两种(如追求效率可改写为汇编代
码):
1、RFC1071源码
unsigned short csum(unsigned char *addr, int count){
奇/偶校验(ECC)是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。 如果是采用奇校验,在传送每一个字节的时候另外附加一位作为校验位,当实际数据中“1”的个数为偶数的时候,这个校验位就是“1”,否则这个校验位就是“0”,这样就可以保证传送数据满足奇校验的要求。在接收方收到数据时,将按照奇校验的要求检测数据中“1”的个数,如果是奇数,表示传送正确,否则表示传送错误。 同理偶校验的过程和奇校验的过程一样,只是检测数据中“1”的个数为偶数。
奇偶校验就是接收方用来验证发送方在传输过程中所传数据是由于某些原因造成破坏。
具体方法如下:
奇校验:就是让原有数据序列中(包括你要加上的一位)1的个数为奇数
1000110(0)你必须添0这样原来有3个1已经是奇数了所以你添上0之后1的个数还是奇数个。
偶校验:就是让原有数据序列中(包括你要加上的一位)1的个数为偶数
2、对数据长度没限制的实现
unsigned short cksum (struct ip *ip, int len){
long sum = 0;
while ( len >1 ){
sum += *((unsigned short *) ip)++;
if (sum & 8x00000000)
奇偶校验对数据传输正确性的一种校验方法。
在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。

水平垂直奇偶校验的原理

水平垂直奇偶校验的原理

水平垂直奇偶校验的原理水平奇偶校验和垂直奇偶校验是在通信中常用的纠错方式,其原理如下:1. 奇偶校验:假设要传输一个字节的数据,使用奇偶校验就是在数据的最后添加一位校验位,使得整个数据中包含的1的个数为偶数或奇数,具体有以下两种方式:1.1. 奇校验:使得整个数据中包含的1的个数为奇数,校验位是检验数据中1的个数,如果数据中1的个数是奇数,则校验位为0,否则为1。

例如,对ASCII码为1011 0001的字符'B'进行奇校验,则在其最后添加一个校验位1,使得整个数据中包含的1的个数为奇数,即1011 0001 1。

1.2. 偶校验:使得整个数据中包含的1的个数为偶数,校验位是检验数据中1的个数,如果数据中1的个数是奇数,则校验位为1,否则为0。

例如,对ASCII码为1011 0001的字符'B'进行偶校验,则在其最后添加一个校验位0,使得整个数据中包含的1的个数为偶数,即1011 0001 0。

2. 水平奇偶校验和垂直奇偶校验:假设要传输的数据是一个矩阵,水平奇偶校验和垂直奇偶校验分别对每一行和每一列进行奇偶校验,将校验结果添加到该行或该列的末尾。

例如,对以下4\times4 的矩阵进行水平和垂直奇偶校验:\begin{matrix}1 & 0 & 0 & 1\\ 0 & 1 & 1 & 0\\ 0 & 1 & 1 & 0\\ 1 & 0 & 0 & 1\end{matrix}水平奇偶校验:对每一行进行奇偶校验,得到校验结果为1、0、1、1,将它们分别添加到末尾得到:\begin{matrix}1 & 0 & 0 & 1 & 1\\ 0 & 1 & 1 & 0 & 0\\ 0 & 1 & 1 & 0 & 1\\ 1 & 0 & 0 & 1 & 1\end{matrix}垂直奇偶校验:对每一列进行奇偶校验,得到校验结果为0、0、1、0、1,将它们分别添加到末尾得到:\begin{matrix}1 & 0 & 0 & 1 & 1 & 0\\ 0 & 1 & 1 & 0 & 0 & 0\\ 0 & 1 & 1 & 0 & 1 & 1\\ 1 & 0 & 0 & 1 & 1 & 0\\ 0 & 0 & 1 & 0 & 1 & 1\end{matrix}在接收端,对每一行和每一列重新进行奇偶校验,如果出现错误的位,则根据奇偶校验位进行纠正。

奇偶校验

奇偶校验

概述奇偶校验法常用于识别数据是否发生传输错误,并且可以启动校正措施,或者舍弃传输发生错误的数据,要求重新传输有错误的数据块。

编辑本段奇偶校验法奇偶校验法是一种很简朴并且广泛使用的校验方法。

这种方法是在每一字节中加上一个奇偶校验位,并被传输,即每个字节发送九位数据。

数据传输以前通常会确定是奇校验还是偶校验,以保证发送端和接收端采用相同的校验方法进行数据校验。

假如校验位不符,则认为传输出错。

奇校验是在每个字节后增加一个附加位,使得“1”的总数为奇数。

奇校验时,校验位按如下规则设定:假如每字节的数据位中“1”的个数为奇数,则校验位为“0”若为偶数,则校验位为“1”。

奇校验通常用于同步传输。

而偶校验是在每个字节后增加一个附加位,使得“1”的总数为偶数。

偶校验时,校验位按如下规则设定:假如每字节的数据位中“1”的个数为奇数,则校验位为“1”;若为偶数,则校验位为“0”。

偶校验常用于异步传输或低速传输。

校验的原理是:假如采用奇校验,发送端发送的一个字符编码(含校验位)中,“1”的个数一定为奇数个,在接收端对接收字符二进制位中的“1”的个数进行统计,若统计出“1”的个数为偶数个,则意味着传输过程中有1位(或奇数位)发生差错。

事实上,在传输中偶尔—位出错的机会最多,故奇偶校验法常常采用。

然而,奇偶校验法并不是一种安全的检错方法,其识别错误的能力较低。

假如发生错误的位数为奇数,那么错误可以被识别,而当发生错误的位数为偶数时,错误就无法被识别了,这是因为错误互相抵消了。

数位的错误,以及大多数涉及偶数个位的错误都有可能检测不出来。

它的缺点在于:当某一数据分段中的一个或者多位被破坏时,并且在下一个数据分段中具有相反值的对应位也被破坏,那么这些列的和将不变,因此接收方不可能检测到错误。

常用的奇偶校验法为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。

编辑本段垂直奇偶校验垂直奇偶校验是在垂直方向上以列的形式附加上校验位。

假设数据格式及其发送顺序如图1所示,则垂直奇偶校验的编码规则如图2所示。

什么是奇偶校验

什么是奇偶校验

什么是奇偶校验对数据传输正确性的一种校验方法。

在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。

例如,需要传输"11001110",数据中含5个"1",所以其奇校验位为"0",同时把"110011100"传输给接收方,接收方收到数据后再一次计算奇偶性,"110011100"中仍然含有5个"1",所以接收方计算出的奇校验位还是"0",与发送方一致,表示在此次传输过程中未发生错误。

奇偶校验就是接收方用来验证发送方在传输过程中所传数据是否由于某些原因造成破坏。

具体方法如下:奇校验:就是让原有数据序列中(包括你要加上的一位)1的个数为奇数 1000110(0)你必须添0这样原来有3个1已经是奇数了所以你添上0之后1的个数还是奇数个。

偶校验:就是让原有数据序列中(包括你要加上的一位)1的个数为偶数 1000110(1)你就必须加1了这样原来有3个1要想1的个数为偶数就只能添1了。

大家一定会问,如何计算奇偶性呢,在计算机内有一种特殊的运算它遵守下面的规则:1+1=0; 1+0=1; 0+1=1; 0+0=0;我们把传送过来的1100111000逐位相加就会得到一个1,应该注意的的,如果在传送中1100111000变成为0000111000,通过上面的运算也将得到1,接收方就会认为传送的数据是正确的,这个判断正确与否的过程称为校验。

而使用上面方法进行的校验称为奇校验,奇校验只能判断传送数据中奇数个数据从0变为1或从1变为0的情况,对于传送中偶数个数据发生错误,它就无能为力了。

Odd Parity(奇校验),校核数据完整性的一种方法,一个字节的8个数据位与校验位(parity bit )加起来之和有奇数个1。

奇偶校验与和校验

奇偶校验与和校验
奇偶校验对数据传输正确性的一种校验方法。
在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。
例如,需要传输"11001110",数据中含5个"1",所以其奇校验位为"0",同时把"110011100"传输给接收方,接收方收到数据后再一次计算奇偶性,"110011100"中仍然含有5个"1",所以接收方计算出的奇校验位还是"0",与发送方一致,表示在此次传输过程中未发生错误。
2、对数据长度没限制的实现
unsigned short cksum (struct ip *ip, int len){
long sum = 0;
while ( len >1 ){
sum += *((unsigned short *) ip)++;
if (sum & 8x00000000)
count -= 2;
}
if( count > 0 )
sum += * (unsigned char *) addr;
while (sum>>16)
sum = (sum & 0xffff) + (sum >> 16);
return ~sum;
}
第一个while循环是做普通加法(2进制补码加法),因为IP包头和TCP整个报文段比较短(没达到2^17数量级),所以不可能导致4字节的sum溢出(unsigned long 一般至少为4字节)).

奇偶校验的原理

奇偶校验的原理

奇偶校验的原理
奇偶校验是一种常用的错误检测方法,用于在数据传输过程中检测是否存在错误。

原理如下:假设传输的数据有n位,其中n-1位为有效数据,
最后一位为校验位。

校验位的数值是根据有效数据位的奇偶性决定的。

1. 奇校验:如果有效数据位中1的个数是奇数,校验位就设置为1,以保证整个数据的总和(数据位加校验位)中1的个数
是奇数;如果有效数据位中1的个数是偶数,校验位设置为0。

2. 偶校验:如果有效数据位中1的个数是奇数,校验位就设置为0,以保证整个数据的总和(数据位加校验位)中1的个数
是偶数;如果有效数据位中1的个数是偶数,校验位设置为1。

在数据传输过程中,发送方会计算有效数据位的奇偶性并添加相应的校验位。

接收方接收到数据后,会重新计算有效数据位的奇偶性,并与接收到的校验位进行比对。

如果两者不一致,说明数据在传输过程中发生了错误。

奇偶校验的优点是简单、易于实现,并且可以在一定程度上检测出错误。

然而,它只能检测出奇数个位错误,对于偶数个位错误无法检测。

因此,在实际应用中,常常会采用更强大的错误检测方法来提高数据传输的可靠性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0001 00010 (奇校验) P=D1 D2 D3 D4
第二章 2.4 奇偶校验
1 奇偶校验的基本原理 3)检错方法与电路
11000010 11000010
11000010
正确传输
11000011
正常检错
奇校验检错码:
G=
C
X
1
X
2
X
3
X
4
X
5
X

X
n
G=0表示数据正常,否则表示出错
X1 X2
=1
X5 C X6
=1
=1
=1
G
第二章 2.4 奇偶校验
2 奇偶校验的特点 编码与检错简单 编码效率高
11000010 11000011 11000011
11000001 11000000 11000010
G=0 正确吗?
正常检错
不能检测偶数位错误, 无错结论不可靠,是一种错误检测码 不能定位错误,因此不具备纠错能力
一般在同步传输方式中常采用奇校验,异步传输方式中常采用偶校验
00000000 偶校验 000000 00000001 奇校验
第二章 2.4 奇偶校验
5 关于奇/偶校应用的讨论
0110100 1 1011010 0 0110110 1 1110101 1 1001001 0 1000110 1
(可检错)
可纠正1位错误 可检测出某行(列)上的奇数位 可检出一部分偶数位错误 不能检测出错码分布在矩形4个顶点上的错误
0110100 1 1011010 0 0110100 1 1110101 1 1001011 0 1000110 1
=1
=1
X3 X4
=1
X5 C X6
=1
=1
=1
1
G
第二章 2.4 奇偶校验
1 奇偶校验的基本原理
11000011
11000011
偶校验检错码:
G= C X1 X2 X3 X4 X5 X6 X7
G=0表示数据正常,否则表示出错
11000011
正确传输
11000010
正常检错
X1 X2
=1
=1
X3 X4
(可检错)
1110101 1 1011010 0 0010110 1 1110101 1 1001011 0 0000111 1 (不能检错)
第二章 2.4 奇偶校验
5 关于奇/偶校应用的讨论 哪些场合应用奇偶校验?
哪条内存条具有错奇偶校验功能的内存条? 工程上的应用
/article/280413.htm (关于串口奇偶校验配置的经验)
计算机组成原理
第二章 数据表示
2.4 奇偶校验
第二章 2.4 奇偶校验
1 奇偶校验的基本原理
1)增加冗余码(校验位)
有效信息(k位) 校验信息(r=1位)
2)编码:根据有效信息计算校验信息位,使校验码(数据+ 1位校验信息)中1的个数满足奇/偶校验的要求
0001 00011 (偶校验) P=D1 D2 D3 D4
第二章 2.4 奇偶校验
4 改进的奇/偶校
双向奇偶校验 方块校验
垂直水平校验
0110100 1 1011010 0 0010110 1 1110101 1 1001011 0 1000110 1
0110100 1 1011010 0 0010111 1 1110101 1 1001011 0 1000110 1 (可纠错)
第二章 2.4 奇偶校验
3 奇偶校验的码距
最小码距 检错
1
0
2
1
3
2
4
2
5
2
6
3
7
3
纠错 0 0
或1 加码距为 2 11000011 01000010
最小码距≥e+1: 可检测e个错误
最小码距≥2t+1: 可纠正t个错误
最小码距≥e+t+1: 可纠正t个错误,同时检测e个错误(et)
相关文档
最新文档