RM新时代网站-首页

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>通信技術(shù)>數(shù)據(jù)通信>

crc校驗失敗的解決辦法

2017年12月04日 09:13 網(wǎng)絡(luò)整理 作者: 用戶評論(0

  CRC校驗碼是基于將位串看作是系數(shù)為0或1的多項式,一個k位的數(shù)據(jù)流可以看作是關(guān)于x的從k-1階到0階的k-1次多項式的系數(shù)序列。采用此編碼,發(fā)送方和接收方必須事先商定一個生成多項式G(x),其高位和低位必須是1。要計算m位的幀M(x)的校驗和,基本思想是將校驗和加在幀的末尾,使這個帶校驗和的幀的多項式能被G(x)除盡。當(dāng)接收方收到加有校驗和的幀時,用G(x)去除它,如果有余數(shù),則CRC校驗錯誤,只有沒有余數(shù)的校驗才是正確的。

  CRC校驗

  對應(yīng)關(guān)系

  多項式和二進(jìn)制數(shù)有直接對應(yīng)關(guān)系:X的最高冪次對應(yīng)二進(jìn)制數(shù)的最高位,以下各位對應(yīng)多項式的各冪次,有此冪次項對應(yīng)1,無此冪次項對應(yīng)0??梢钥闯觯篨的最高冪次為R,轉(zhuǎn)換成對應(yīng)的二進(jìn)制數(shù)有R+1位。

  多項式包括生成多項式G(X)和信息多項式C(X)。

  如生成多項式為G(X)=X4+X3+X+1, 可轉(zhuǎn)換為二進(jìn)制數(shù)碼11011。

  而發(fā)送信息位 101111,可轉(zhuǎn)換為數(shù)據(jù)多項式為C(X)=X5+X3+X2+X+1。

  生成多項式

  是接受方和發(fā)送方的一個約定,也就是一個二進(jìn)制數(shù),在整個傳輸過程中,這個數(shù)始終保持不變。

  在發(fā)送方,利用生成多項式對信息多項式做模2除生成校驗碼。在接收方利用生成多項式對收到的編碼多項式做模2除檢測和確定錯誤位置。

  crc校驗失敗的解決辦法

  應(yīng)滿足以下條件:

  A、生成多項式的最高位和最低位必須為1。

  B、當(dāng)被傳送信息(CRC碼)任何一位發(fā)生錯誤時,被生成多項式做除后應(yīng)該使余數(shù)不為0。

  C、不同位發(fā)生錯誤時,應(yīng)該使余數(shù)不同。

  D、對余數(shù)繼續(xù)做除,應(yīng)使余數(shù)循環(huán)。

  校驗碼位數(shù)

  CRC校驗碼位數(shù) = 生成多項式位數(shù) - 1。注意有些生成多項式的簡記式中將生成多項式的最高位1省略了。

  生成步驟

  1、將X的最高次冪為R的生成多項式G(X)轉(zhuǎn)換成對應(yīng)的R+1位二進(jìn)制數(shù)。

  2、將信息碼左移R位,相當(dāng)于對應(yīng)的信息多項式C(X)*2R。

  3、用生成多項式(二進(jìn)制數(shù))對信息碼做除,得到R位的余數(shù)(注意:這里的二進(jìn)制做除法得到的余數(shù)其實是模2除法得到的余數(shù),并不等于其對應(yīng)十進(jìn)制數(shù)做除法得到的余數(shù)。)。

  4、將余數(shù)拼到信息碼左移后空出的位置,得到完整的CRC碼。

  CRC校驗錯誤的解決方法

  辦法一:

  WinRAR本身就帶有壓縮包修復(fù)功能。雙擊打開要解壓的winrar壓縮包文件,點(diǎn)擊菜單“工具”下的“修復(fù)壓縮文件”即可,快捷鍵是“ALT+R”。此法可修復(fù)一部分壓縮包的常規(guī)錯誤,但是成功率不高。你可以試著連續(xù)修復(fù)幾次。WinRAR的這個功能對壓縮包里有很多文件且文件容量都比較小的情況比較適用。

  辦法二:

  雙擊打開要解壓的winrar壓縮包文件(不是解壓,而是用WinRAR打開),選中你要解壓縮的文件,單擊鼠標(biāo)右鍵,在彈出的菜單里選擇“無需確認(rèn)直接解壓縮”,快捷鍵是“ALT+W”。用此方法,不管是好的壓縮包還是壞的壓縮包,統(tǒng)統(tǒng)暢行無阻,成功率100%!

  辦法三:釜底抽薪法!

  其原理就是讓RAR壓縮包內(nèi)損壞的文件解壓縮出來,不理會WinRAR的警告,能解壓多少就解壓多少。解壓縮軟件還是用WinRAR,不過要做小小的設(shè)置,鼠標(biāo)右鍵點(diǎn)擊要解壓縮的文件包,依次選擇:winrar - 解壓文件(A) ,在解壓路徑和選項卡中勾選“保留損壞的文件”復(fù)選框,點(diǎn)擊確定開始解壓縮。不要理會解壓縮出錯的信息,解壓縮結(jié)束之后你會發(fā)現(xiàn)損壞的文件被解壓出來了。經(jīng)過這樣解壓出來的損壞文件能正常使用的幾率還是非常高的。

  預(yù)防工作很重要:

  其實RAR壓縮包出錯的解決方法主要是以預(yù)防為主!如果沒有預(yù)防,等到真正出了問題,技術(shù)上也是沒辦法完美解決的!像循環(huán)冗余校驗碼(CRC)出錯這種情況,如果RAR壓縮包不包含恢復(fù)記錄的話,用戶自己想要修復(fù)CRC是不可能的!本文的主要目的是想告訴大家一些出錯的原因以及討論一些從根本上預(yù)防出錯和把損失減少到最小的辦法而已! 預(yù)防措施:

1.做好恢復(fù)記錄

  原始RAR壓縮包在壓縮時,如果選擇放置恢復(fù)記錄,這樣用戶下載后即使CRC出錯也有自己修復(fù)的機(jī)會!

2.采取分卷壓縮

  采取分卷壓縮的方法便可較大地減少因為出現(xiàn)不可恢復(fù)的錯誤帶來的損失。

3.老文件也加恢復(fù)記錄

  有人也許會問,新壓縮的RAR壓縮包可以加入恢復(fù)記錄,那么已經(jīng)壓縮過的RAR包有沒有辦法也加上恢復(fù)記錄呢?給已經(jīng)壓縮好的RAR壓縮包加上恢復(fù)紀(jì)錄是有辦法的,只需要打開壓縮包,在“命令”菜單中選擇“保護(hù)壓縮文件防止損害”即可。 在“資源管理器”中右擊一個文件,選擇Winrar→“添加到壓縮文件”后,在打開的“壓縮文件名和參數(shù)”窗口中選中“添加恢復(fù)記錄”復(fù)選框,再單擊“高級”標(biāo)簽,在這里即可設(shè)置以壓縮文件總大小為準(zhǔn)的百分比,其最大允許值為10%。較大的恢復(fù)記錄允許連續(xù)損壞時更多的恢復(fù)可能,但同時也增加了壓縮文件的大小,因此1~3%是較為合適的數(shù)值(目前國際上通用的設(shè)置為3%)。最后單擊“確定”按鈕壓縮所選文件。

  這樣壓縮出來的壓縮包就帶有了CRC32校驗信息,一旦在解壓過程中出現(xiàn)“CRC校驗失敗,文件被破壞”的提示,我們便可以通過點(diǎn)擊winrar軟件工具欄里的修復(fù)工具按鈕來修復(fù)文件。

非常好我支持^.^

(3) 3.8%

不好我反對

(77) 96.2%

( 發(fā)表人:龔婷 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?
      RM新时代网站-首页