2.1.5-1校验码—奇偶校验码
XYXZNP
(҂◔∀◐҂)☆万圣节快乐♬☆◥(ฅº₩ºฅ)◤ 不给糖就捣蛋 ☆
姐姐开始我们会学习数据的校验相关的一系列问题,那通过之前几个小节的学习,我们已经知道了数字字符这些简单的数据应该怎么在计算机内部进行表示,其实本质上就是一些0101的二进制代码,但是这些数据在计算机内部进行计算存取,还有传送的过程当中,由于计算机元器件啊,有可能会发生故障,或者也有可能会因为某些环境噪音干扰,导致我们在计算机内部存储传输的这些二进制数据会发生错误,所以我们就必须考虑到数据的校验这样的一个问题,那中国有一句古话叫知错能改善莫大焉,在计算机内部既然数据有可能会发生错误,那我们应该怎么做才能知道才能发现这种错误的发生呢另外当检测到错误发生之后应该怎么了这个错误呢。线数据错误的一种编码机制叫做奇偶校验,那我们会首先简单的介绍校验相关的一些原理,还有基本概念,然后再来介绍就叫燕应该如何实现好来看这样的一个故事,两台计算机之间进行数据的传输,那他们有可能会传输这样的4种信息啊,ABCD,那由于只有4种,所以我们只需要两个比特币的信息,就可以和这4个信息进行一个11的映射,那现在假设他们想要传输的是B这个信息,也就是二进制的01,但是现在由于某种神秘的环境因素的干扰,导致了这两个二进制位在传输的过程当中发生了跳变,也就是发生了所谓的未错误,0可能会变为11可能会变为0,那假设是第2个二进制位发生了错误,所以右边这台计算机它最后接收到的数据就变成了00所以本来。由于环境因素的干扰,右边这台计算机它接收到的实际是a,而由于00这个信息它也是合法的,所以右边这台计算机它并不能判断出它接收到的这个数据是不是发生了错误噢,那我们把这个编码方案进行一个优化,我们增加一个冗余的校验位,那由于2的三次方等于8,也就是说三个二进制位本来可以映射为8种状态,但是现在我们只取了其中的4个状态作为合法的状态,然后剩下的4个是冗余的非法状态,那采用这种编码方案来传输数据,就可以让我们发现某一些二进制位的错误,还是刚才那个故事要发送B这个信息,那么B所对应的二进制编码是001在传输的过程中假设是最后的这一位发生了错误。000这个信息是一个非法的状态,所以此时右边这台计算机就可以判断000,一定是发生了错误的,就可以让它重新再传输好,接下来我们来引入几个基本概念,由若干位代码组成的一个字叫做码字像第1种编码方案,两个比特位有可能出现4种状态,而这4种状态都是合法的码字,而右边这种编码发三个比特位,有可能有8种状态,这8种状态当中只有其中的4个是合法的码字,剩下的4个是非法的码字好第2个概念,如果我们把两个码字进行竹位的对比,那么它们之间有几个位不一样,我们就称为这两个码字之间的距离为多少比如a和c所对的码字他们之间有两个二进制位是不一样的因此比如a和c所对的码字他们之间有两个二进制位是不一样的因此这两。两个比特位有可能出现4种状态,而这4种状态都是合法的码字,而右边这种编码方案,三个比特位有可能有8种状态,这8种状态当中只有其中的4个是合法的码字,剩下的4个是非法的码字好,第2个概念,如果我们把两个码字进行逐位的对比,那么他们之间有几个way不一样,我们就称为这两个码字之间的距离为多少比如a和C所对应的码字,它们之间有两个二进制位是不一样的,因此这两个码字之间的距离就是二再看左边这种编码方案,a和C所对应的码字之间只有一个二进制比特位是不一样的,所以他们俩之间的码字距离等于一只有一个二进制位不同好第三个概念。法的码字,然后这些合法码字之间的最小,所以他们俩之间的码字距离等于E。好,第3个概念在一种编码方案当中,有可能会有若干个合法的码字,然后这些合法码字之间的最小距离称为这种编码方案的码距,那像左边这种编码法所有的合法码字之间的最小距离应该是等于1,就是像a和C这两个码子一样,它们之间的距离只有一,所以这个编码方案的码距就是一,那马具唯一就意味着当信息在传输的过程中,如果说说有一个比特位发生了跳变,那么有可能使得我们从一个合法的码字跳变到另一个合法的码字,而由于跳变之后的码字也是合法的所以就无法检测出数据在传输的过程当中有发生错误而发大家可以对比一下。它们之间的最小距离D都应该是2,也就是说任意两个合法码字之间至少都会有两个二进制比特位是不一样的,那么这就意味着在数据传输的过程当中,如果只有一个比特位发生了跳变,那一个比特的错误,一定会使得我们的码字进入一个非法的状态,所以在这种情况下,我们就可以检测出数据的错误,因此可以看到一种编码方案,它的检测能力如何和马具是息息相关的,对于一个码距为1的编码方案一定是没有检测能力的,而当马具等于2的时候,开始出现了检测的能力,而如果能设计马具大于3的编码方案,那在设计合理的情况下,除了检错之外,甚至还有可能会有纠错的能力留下个小姐的海绵吗能力我们。原理很简单,如果有N个有效的信息位,那么我们会在这些信息位的手部或者尾部加入移位的啊,极有教,因为如果采用基教一样的策略,那么我们需要保证我们添加的这个校验位,还有所有的这些信息为里边一的个数必须是奇数个那偶叫一样的策略也是类似的,我们添加了叫烟味之后,需要保证整体来看一的个数,为偶数个号直接来看一个立体,现在我们有这样的两串原始的信息,然后需要给出他们的基教页码和偶教照样码,假设我们会在高位的地方,呃,添加这个校验位,然后剩下的7位是信息位,先来看基教页码第一串数据总共有一个两个三个四个有四个一需要在高位再补一个一这样就可以保证总体来看。调研啊,假设我们会在高位的地方,呃,添加这个交易位,然后剩下的7位是信息位,先来看基教页码可以数一下第1串数据,总共有一个两个三个4个有4个1,因此我们需要在高位再补一个一,这样就可以保证总体来看一下,一的个数有奇数个,而第2串信息啊一共有12345有5个亿,所以我们需要在高位处补一个0,保证整体来看,这个一的个数为奇数个,然后再看偶校验啊,这个本身就有偶数个1,所以我们需要在首部天临而第2串数据啊,总共有奇数个1,所以我们需要在首部天一个一保证整体拥有数个一看下怎么检测出错误假设我们采访的是偶校验的一个策略那么的数据发送的过程保证整体拥有数个一看下怎么检测出错误假设我们采访的是偶校验的一个策略那么的数据发送的过程中。比如说最末尾的这个1变成了0,那么当我们接收到这个数据的时候,是不是就可以数一下,总共有12345有5个1这并不符合我们偶校验码的一个规定,因此我们就可以判断一定是出问题了,可以要求重新听传送好再来看,如果说有两个比特了挑遍,比如说是最后面的这两个一变为了0,那接收方经过检查发现啊,收到的数据当中,一共有123 4有4个一也就是有偶数个1,那这其实是符合偶教验码的一个规定的,因此接收方会以为自己收到的是一个合法的数据,所以如果有偶数的V发生了错误,那么极有校验的这种策略是检测不出错误来的这事就叫一个巨星到目前为止的视角来探讨如何确定校验位怎么进行。实现这种等等的检测不出错误来的,这是既有交验码的一个局限性,那到目前为止,我们是站在人类的视角来探讨,如何确定校验位怎么进行旧交调研,那接下来我们来看一下计算机硬件,实现这种既有校验的一个原理,我们以偶校验的实现为例,首先我们需要做的是确定遗传信息位的校验位到底是多少,那这个事情可以通过硬件的异或运算或者也可以称为摩尔加的运算来实现快好的同学注意一下,啊,易获运算,所谓易获运算,就是给你两个二进制的比特位,那当这两个比特位不一样,相异的时候运算的结果为一而如果两个二进制位相同的手算的结果都是零这就是一个规则对于第一串信息我们要求他的只需要把而如果两个二进制位相同的手算的结果都是零这就是一个规则对于第一串信息我们要求他的只需要把所有。遗传性一个运算规则好,那对于第1串信息,我们要求他的偶像,因为只需要把所有的这些比特类都进行易货运算,那一盒01或等于1,然后这个一再和这个零异或还是等于1,然后这个一再和下一个1亿货应该是等于0,这个灵再和下一个一进行易货又等于1这个一盒01或等于1,这个一再和最后一个一抑或等于0,因此所有的这些V进行抑或运算得到的结果就是0,那这我们算得的结果就是偶叫,因为和我们之前一个一个数得到的结果是一样的,那第二传信息也是一样的,把所有的这些啊信息未进行异或运算算得的结果是1,所以第2场信息的偶校验位应该是一号线在计算机已经得出偶校验位。完整的偶校验吗?那接下来再看校验的过程应该怎么实现,同样需要使用到异或运算对所有的二进制位啊,包括这个校验位进行异或运算,如果结果为1,那么说明出错好,现在假设对01001101进行一个偶教验,那么所有的这些V进行异或运算,大家可以自己推一下,得到的结果是0教研的结果,符合偶校验的规定,所以我们会认为这传数据它是合法的好,再来看第2场数据,假设这传数据的最后一位发生了错误,由一变为了0,那么跨考同学也可以推一下这些二进制位进行异或运算,得到的结果是一,那这就说明发生了错误如果原数据发生了两个比特的最后得到的结果是林我们同样会认为他是正确的。说有偶数个比特发生了错误,那么我们是无法发现错误的,只有基数和比特的错误我们才能检测出来,好,那再次强调易货运算的规则,跨考的同学一定要注意,因为我们在之后还会经常碰到啊,易货也可以把它称为摩尔加是一个意思好的,那这个小节中我们主要探讨了基友教练应该怎么实现,我们需要注意马具这个概念,因为一种编码方案的,呃,马具是多少很大程度上决定了它的检错能力还有纠错能力怎么样,像这个小杰我们学习的就有教研他的马具,就是20线的思路很简单,就是在所有的信息位的首部或者尾部添加一个奇偶校验位,如果采用基教研的策略,那么我们需要保证我们添加了这个校验位之后,整体来看一的个数是奇数个需要一。那么我们需要保证我们添加了这个校验位之后,整体来看一的个数是基数个,那偶教研也是类似需要有偶数个一就叫二维码,只能检测出奇数位的错误,并且它只能检错不能纠错,另外我们还穿插补充了一个跨考的同学,可能不知道的知识盲点就是异或运算,当两个比特进行异或运算的时候,只有二者不同的时候计算结果才是一好的,那也是那就是这小节的全部内容。