CRC循環冗余檢驗的糾錯功能和代碼實現_第1頁
CRC循環冗余檢驗的糾錯功能和代碼實現_第2頁
CRC循環冗余檢驗的糾錯功能和代碼實現_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、循環冗余檢驗的糾錯功能和代碼實現CRC 循環冗余檢驗的糾錯功能和代碼實現寫這篇章呢,主要是想聊下CRC的糾錯功能,雖然我們談到CRC很少說到它的糾錯功能,但不代表沒有,因此寫以記錄下它的糾錯功能以及如何java代碼實現。給出java代碼如下public static void main(String args) TestSystem.out.print( +i + +mistakeCRC);System.out.println( : +calculate(Integer.parseInt(mistakeCRC, 2),Integer .parseInt(gxStr, 2) dataStr.le

2、ngth() - 1,dataStr.length(),gxStr.length();/* param 信息進制data 成多項式gx 信息位長度dataStrLen 校驗位長度gxStrLen* author wxc* return 余數* Description: 計算余數*/public String calculate(int data, int gx, int dataStrLen, int gxStrLen) /算出原始數據補零后的總位數int sum =dataStrLen +gxStrLen - 1;/計算2sum-1次冪BigInteger bi =new BigIntege

3、r(2);/2sum-1次冪轉換為int型int flag =bi.pow(sum - 1).intValue();/循環dataStrLen次/關于為什么是dataStrLen,假設信息位位,成多項式是位,那么就是(K+R-1) - R + 1 = K,也就是信息位位數for (int i =0; i 1;/flag最位的1右移,較下位/解決Java輸出進制時略去位零的問題如成多項式1011,那么需要補20,也就是的長度= 4-1while (.length() (gxStrLen - 1) while (.length() (gxStrLen - 1) /*public String ge

4、tCRC(String dataStr, String gxStr) /獲取進制信息位的位數int dataStrLen =dataStr.length();/獲取成多項式位數/將進制的字符串變為整型int data =Integer.parseInt(dataStr, 2);/將多項式的字符串變為整型int gx =Integer.parseInt(gxStr, 2);/算出原始數據補零后的總位數int sum =dataStrLen +gxStrLen - 1;/信息碼低位補零/成多項式低位補零,使其與補零后的位數致,以便異或gx =gx (dataStrLen - 1);String C

5、RC =calculate(data, gx, dataStrLen, gxStrLen);CRC =dataStr +;/* param 循環冗余效驗碼CRC要更改的下標index* author wxc* return 更改某個位后的冗余碼* Description:更改正確冗余碼的某個位,得到錯誤的冗余碼,也就是循環冗余碼在傳輸過程中發位特的差錯*/public String mistakeCRC(String CRC, int index) BigInteger bi =new BigInteger(2);/2sum-1次冪轉換為int型int flag =bi.pow(index -

6、 1).intValue();int data =Integer.parseInt(, 2);int result =flag data;/解決Java輸出進制時略去位零的問題String resultStr =Integer.toBinaryString(result);while (resultStr.length() = K+R的時候,CRC才具有糾錯功能。且我們可以發現余數是每7個個循環,出錯位1和出錯位8的余數是樣的,出錯位2和出錯位9的余數是樣的,所以這也是為什么叫做循環冗余碼的原因接下來我們再來說說為什么般我們不提及CRC的糾錯功能,因為CRC般在計算機絡中,在以太的MAC幀中,通常4字節的效驗碼(FCS)不但來檢驗MAC幀的數據部分,還來檢驗的地址、原地址和類型字段(601514)字節,信息位遠遠于校驗位

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論