close
什麼是CRC,什麼是CRC錯誤
1、什麼是CRC:
迴圈冗余碼校驗英文名稱為Cyclical Redundancy Check,簡稱CRC。它是利用除法及餘數的原理來作錯誤偵測(Error Detecting)的。實際應用時,發送裝置計算出CRC值並隨資料一同發送給接收裝置,接收裝置對收到的資料重新計算CRC並與收到的CRC相比較, 若兩個CRC值不同,則說明資料通訊出現錯誤。
根據應用環境與習慣的不同,CRC又可分為以下幾種標準:
①CRC-12碼;
②CRC-16碼;
③CRC-CCITT碼;
④CRC-32碼。
CRC-12碼通常用來傳送6-bit字串。CRC-16及CRC-CCITT碼則用是來傳送8-bit字元,其中CRC-16為美國採用,而CRC-CCITT為歐洲國家所採用。CRC-32碼大都被採用在一種稱為Point-to-Point的同步傳輸中。
下面以最常用的CRC-16為例來說明其生成過程。
CRC-16碼由兩個位元組構成,在開始時CRC寄存器的每一位都預置為1,然後把CRC寄存器與8-bit的資料進行異或,之後對CRC寄存器從高到 低進行移位,在最高位(MSB)的位置補零,而最低位(LSB,移位後已經被移出CRC寄存器)如果為1,則把寄存器與預定義的多項式碼進行異或,否則如 果LSB為零,則無需進行異或。重複上述的由高至低的移位8次,第一個8-bit資料處理完畢,用此時CRC寄存器的值與下一個8-bit資料異或並進行 如前一個資料似的8次移位元。所有的字元處理完成後CRC寄存器內的值即為最終的CRC值。
下面為CRC的計算過程:
1.設置CRC寄存器,並給其賦值FFFF(hex)。
2.將資料的第一個8-bit字元與16位元CRC寄存器的低8位進行異或,並把結果存入CRC寄存器。
3.CRC寄存器向右移一位,MSB補零,移出並檢查LSB。
4.如果LSB為0,重複第三步;若LSB為1,CRC寄存器與多項式碼相異或。
5.重複第3與第4步直到8次移位元全部完成。此時一個8-bit資料處理完畢。
6.重複第2至第5步直到所有資料全部處理完成。
7.最終CRC寄存器的內容即為CRC值。
2、什麼是CRC錯誤:
CRC是ZIP檔案名中的校驗和,主要用於在解壓縮時進行校驗,但是如果在解壓縮時發現一個檔的校驗和出錯,將會無法解壓縮。此時,WinZip會彈出 視窗告訴用戶“CRC錯誤!”,這時請不要點擊“OK”按鈕,而是進入相應檔夾下,您會發現那個檔已在那裏,將它複製一下,再粘貼到另一個檔夾後,再點擊 那個“OK”按鈕即可。
補充
如果你是在使用winzip是碰到的問題,請試試winrar,一般都可以解壓縮,具體情況多發生在打開大壓縮包時,還有就是下載檔損壞。
源自:知識+
1、什麼是CRC:
迴圈冗余碼校驗英文名稱為Cyclical Redundancy Check,簡稱CRC。它是利用除法及餘數的原理來作錯誤偵測(Error Detecting)的。實際應用時,發送裝置計算出CRC值並隨資料一同發送給接收裝置,接收裝置對收到的資料重新計算CRC並與收到的CRC相比較, 若兩個CRC值不同,則說明資料通訊出現錯誤。
根據應用環境與習慣的不同,CRC又可分為以下幾種標準:
①CRC-12碼;
②CRC-16碼;
③CRC-CCITT碼;
④CRC-32碼。
CRC-12碼通常用來傳送6-bit字串。CRC-16及CRC-CCITT碼則用是來傳送8-bit字元,其中CRC-16為美國採用,而CRC-CCITT為歐洲國家所採用。CRC-32碼大都被採用在一種稱為Point-to-Point的同步傳輸中。
下面以最常用的CRC-16為例來說明其生成過程。
CRC-16碼由兩個位元組構成,在開始時CRC寄存器的每一位都預置為1,然後把CRC寄存器與8-bit的資料進行異或,之後對CRC寄存器從高到 低進行移位,在最高位(MSB)的位置補零,而最低位(LSB,移位後已經被移出CRC寄存器)如果為1,則把寄存器與預定義的多項式碼進行異或,否則如 果LSB為零,則無需進行異或。重複上述的由高至低的移位8次,第一個8-bit資料處理完畢,用此時CRC寄存器的值與下一個8-bit資料異或並進行 如前一個資料似的8次移位元。所有的字元處理完成後CRC寄存器內的值即為最終的CRC值。
下面為CRC的計算過程:
1.設置CRC寄存器,並給其賦值FFFF(hex)。
2.將資料的第一個8-bit字元與16位元CRC寄存器的低8位進行異或,並把結果存入CRC寄存器。
3.CRC寄存器向右移一位,MSB補零,移出並檢查LSB。
4.如果LSB為0,重複第三步;若LSB為1,CRC寄存器與多項式碼相異或。
5.重複第3與第4步直到8次移位元全部完成。此時一個8-bit資料處理完畢。
6.重複第2至第5步直到所有資料全部處理完成。
7.最終CRC寄存器的內容即為CRC值。
2、什麼是CRC錯誤:
CRC是ZIP檔案名中的校驗和,主要用於在解壓縮時進行校驗,但是如果在解壓縮時發現一個檔的校驗和出錯,將會無法解壓縮。此時,WinZip會彈出 視窗告訴用戶“CRC錯誤!”,這時請不要點擊“OK”按鈕,而是進入相應檔夾下,您會發現那個檔已在那裏,將它複製一下,再粘貼到另一個檔夾後,再點擊 那個“OK”按鈕即可。
補充
如果你是在使用winzip是碰到的問題,請試試winrar,一般都可以解壓縮,具體情況多發生在打開大壓縮包時,還有就是下載檔損壞。
源自:知識+
全站熱搜
留言列表