#校验码#
校驗碼
在原有信息中增加一些冗余信息,用于校驗;
碼距:任何一種編碼都由許多碼字構(gòu)成,任意兩個碼字之間最小的變化二進制位就稱為數(shù)據(jù)校驗碼的碼距;如:00表示男,11表示女,則碼距為2;如用四位二進制表示16種狀態(tài)此時碼距為1,如0000,0001;
奇偶校驗碼
奇偶校驗碼的編碼方式是:由若干位有效信息(如一個字節(jié)),再加上一個二進制位(校驗位)組成校驗碼;
奇校驗:整個校驗碼(有效信息和校驗位)中1的個數(shù)為奇數(shù);
偶校驗:整個校驗碼(有效信息和校驗位)中1的個數(shù)為偶數(shù);
檢錯有局限性,如使用偶校驗:發(fā)送11,收到00,無法檢錯;
無法糾錯;
CRC循環(huán)冗余校驗碼
CRC校驗,可檢錯,不可糾錯;
CRC的編碼方法是:在k位信息碼之后拼接r位校驗碼.應(yīng)用CRC碼的關(guān)鍵是如何從k位信息位見面的得到r位校驗位(編碼),以及如何從k+r位信息碼判斷是否出錯;r的具體數(shù)值由生成多項式?jīng)Q定;
把接收到的CRC碼用約定的生成多項式G(X)去除(模二除法),如果正確在余數(shù)位0;如果某一位出錯則玉樹不為0.不同的位數(shù)出錯玉樹不同,余數(shù)和出錯為之間有唯一的對應(yīng)關(guān)系;
海明校驗碼
海明校驗,可檢錯,可糾錯;
海明校驗碼的原理:在有效信息位中加入幾個校驗位形成海明碼,使碼距比較均勻的拉開,并把海明碼的每個二進制分配到幾個奇偶校驗組中.當有一位出錯后,就會引起有關(guān)的幾個校驗位的值發(fā)生吧變化,這不但可以發(fā)現(xiàn)錯誤,還能指出錯誤位置,為自動糾錯提供了依據(jù);
公式: 2^r>=m+r+1? ?=>? ?2^r-1>=m+r? ? 求r最小值,m代表信息位個數(shù);
? ? ? ? ?
總結(jié)
- 上一篇: 闭散列哈希
- 下一篇: visual 2019怎么写java_用