本文主要是介绍奇偶检验的原理以及逻辑图 海明码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
采用奇偶校验方式的校验码被称为奇偶校验码。假设奇偶校验码有n位,其中奇偶校验位占1位,信息位占n-1位。以8bit为例,奇偶校验位占1位且在最高位(在最低位也可),剩下7位为信息位。\n\n奇校验,使得校验码中的1的个数为奇数。偶检验,使得校验码中的1的个数为偶数。\n\n信息位为1001101,有4个1,采用奇校验,应该加个1(即校验位为1),使得校验码的1的个数为奇数。所以,采用奇校验时的校验码为11001101。同样的,采用偶校验时的校验码为01001101.\n\n信息位为101 0111,则奇校验为0101 0111,偶检验为1101 0111\n\n信息位为000 0000,则奇校验为1000 0000,偶校验为0000 0000\n\n下面以奇校验为例。\n\n若是在传输过程中,校验码有一位发生了改变,这个改变可能在信息位,也可能在校验位。注意,改变要么从0变1,要么从1变0。无论哪中改变,校验码中1的个数都会从奇数变为偶数。在接收端,检测接收到的校验码,发现1的个数为偶数,就表明这个数据出错了,也即有了检错能力,但是不能纠错,因为不知道是哪一位出错了。\n\n如果校验码有两位发生改变呢,那么改变后校验码中1的个数仍为奇数,所以这时就不能检错。\n\n对我们来说,是数1的个数来判断校验码是否出错了,对于计算机来说,是通过异或运算来判断1的个数。异或运算,相异为1,相同为0。\n\n采用奇校验时,1的个数为奇数,将校验码的所有位作异或运算,那么得到的结果一定是1。反之,亦成立。\n\n采用偶校验时,1的个数为偶数,将校验码的所有位作异或运算,那么得到的结果一定是0。反之,亦成立。\n\n特点:只能检测奇数个位数改变的出错情况,不能纠错。奇校验不会产生全0校验码。
海明码又被称为汉明码,其实质是多重奇偶校验码。
特点:具有1位纠错能力和2位检错能力
这篇关于奇偶检验的原理以及逻辑图 海明码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!