crc校驗失敗的解決辦法
CRC校驗碼是基于將位串看作是系數為0或1的多項式,一個k位的數據流可以看作是關于x的從k-1階到0階的k-1次多項式的系數序列。采用此編碼,發送方和接收方必須事先商定一個生成多項式G(x),其高位和低位必須是1。要計算m位的幀M(x)的校驗和,基本思想是將校驗和加在幀的末尾,使這個帶校驗和的幀的多項式能被G(x)除盡。當接收方收到加有校驗和的幀時,用G(x)去除它,如果有余數,則CRC校驗錯誤,只有沒有余數的校驗才是正確的。
CRC校驗
對應關系
多項式和二進制數有直接對應關系:X的最高冪次對應二進制數的最高位,以下各位對應多項式的各冪次,有此冪次項對應1,無此冪次項對應0。可以看出:X的最高冪次為R,轉換成對應的二進制數有R+1位。
多項式包括生成多項式G(X)和信息多項式C(X)。
如生成多項式為G(X)=X4+X3+X+1, 可轉換為二進制數碼11011。
而發送信息位 101111,可轉換為數據多項式為C(X)=X5+X3+X2+X+1。
生成多項式
是接受方和發送方的一個約定,也就是一個二進制數,在整個傳輸過程中,這個數始終保持不變。
在發送方,利用生成多項式對信息多項式做模2除生成校驗碼。在接收方利用生成多項式對收到的編碼多項式做模2除檢測和確定錯誤位置。
應滿足以下條件:
A、生成多項式的最高位和最低位必須為1。
B、當被傳送信息(CRC碼)任何一位發生錯誤時,被生成多項式做除后應該使余數不為0。
C、不同位發生錯誤時,應該使余數不同。
D、對余數繼續做除,應使余數循環。
校驗碼位數
CRC校驗碼位數 = 生成多項式位數 - 1。注意有些生成多項式的簡記式中將生成多項式的最高位1省略了。
生成步驟
1、將X的最高次冪為R的生成多項式G(X)轉換成對應的R+1位二進制數。
2、將信息碼左移R位,相當于對應的信息多項式C(X)*2R。
3、用生成多項式(二進制數)對信息碼做除,得到R位的余數(注意:這里的二進制做除法得到的余數其實是模2除法得到的余數,并不等于其對應十進制數做除法得到的余數。)。
4、將余數拼到信息碼左移后空出的位置,得到完整的CRC碼。
CRC校驗錯誤的解決方法
辦法一:
WinRAR本身就帶有壓縮包修復功能。雙擊打開要解壓的winrar壓縮包文件,點擊菜單“工具”下的“修復壓縮文件”即可,快捷鍵是“ALT+R”。此法可修復一部分壓縮包的常規錯誤,但是成功率不高。你可以試著連續修復幾次。WinRAR的這個功能對壓縮包里有很多文件且文件容量都比較小的情況比較適用。
辦法二:
雙擊打開要解壓的winrar壓縮包文件(不是解壓,而是用WinRAR打開),選中你要解壓縮的文件,單擊鼠標右鍵,在彈出的菜單里選擇“無需確認直接解壓縮”,快捷鍵是“ALT+W”。用此方法,不管是好的壓縮包還是壞的壓縮包,統統暢行無阻,成功率100%!
辦法三:釜底抽薪法!
其原理就是讓RAR壓縮包內損壞的文件解壓縮出來,不理會WinRAR的警告,能解壓多少就解壓多少。解壓縮軟件還是用WinRAR,不過要做小小的設置,鼠標右鍵點擊要解壓縮的文件包,依次選擇:winrar - 解壓文件(A) ,在解壓路徑和選項卡中勾選“保留損壞的文件”復選框,點擊確定開始解壓縮。不要理會解壓縮出錯的信息,解壓縮結束之后你會發現損壞的文件被解壓出來了。經過這樣解壓出來的損壞文件能正常使用的幾率還是非常高的。
預防工作很重要:
其實RAR壓縮包出錯的解決方法主要是以預防為主!如果沒有預防,等到真正出了問題,技術上也是沒辦法完美解決的!像循環冗余校驗碼(CRC)出錯這種情況,如果RAR壓縮包不包含恢復記錄的話,用戶自己想要修復CRC是不可能的!本文的主要目的是想告訴大家一些出錯的原因以及討論一些從根本上預防出錯和把損失減少到最小的辦法而已! 預防措施:
1.做好恢復記錄
原始RAR壓縮包在壓縮時,如果選擇放置恢復記錄,這樣用戶下載后即使CRC出錯也有自己修復的機會!
2.采取分卷壓縮
采取分卷壓縮的方法便可較大地減少因為出現不可恢復的錯誤帶來的損失。
3.老文件也加恢復記錄
有人也許會問,新壓縮的RAR壓縮包可以加入恢復記錄,那么已經壓縮過的RAR包有沒有辦法也加上恢復記錄呢?給已經壓縮好的RAR壓縮包加上恢復紀錄是有辦法的,只需要打開壓縮包,在“命令”菜單中選擇“保護壓縮文件防止損害”即可。 在“資源管理器”中右擊一個文件,選擇Winrar→“添加到壓縮文件”后,在打開的“壓縮文件名和參數”窗口中選中“添加恢復記錄”復選框,再單擊“高級”標簽,在這里即可設置以壓縮文件總大小為準的百分比,其最大允許值為10%。較大的恢復記錄允許連續損壞時更多的恢復可能,但同時也增加了壓縮文件的大小,因此1~3%是較為合適的數值(目前國際上通用的設置為3%)。最后單擊“確定”按鈕壓縮所選文件。
這樣壓縮出來的壓縮包就帶有了CRC32校驗信息,一旦在解壓過程中出現“CRC校驗失敗,文件被破壞”的提示,我們便可以通過點擊winrar軟件工具欄里的修復工具按鈕來修復文件。
非常好我支持^.^
(3) 3.8%
不好我反對
(77) 96.2%
相關閱讀:
- [電子說] 如何使用腳本完成CRC和填充值的自動完成 2023-10-21
- [電子說] 奇偶校驗和crc校驗的區別 CRC校驗和奇偶校驗之間有什么關系? 2023-10-17
- [電子說] 什么是奇校驗和偶校驗?常見的奇偶校驗方式有哪些? 2023-10-17
- [電子說] IPv6地址如何劃分?這篇文章看完必懂! 2023-10-17
- [電子說] 開放二進制翻譯聯盟,推動RISC-V實現跨架構應用運行 2023-10-17
- [電子說] N32G45x硬件CRC計算Modbus的CRC16 2023-10-16
- [電子說] 簡單歸納USB設備開發必備的基礎知識 2023-10-16
- [電子說] SEM IP多種工作模式的區別和選擇指導 2023-10-13
( 發表人:龔婷 )