CRC循環(huán)冗余校驗碼

From Wiki-Cyclic redundancy check

A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data. Blocks of data entering these systems get a short check value attached, based on the remainder of a polynomial division of their contents. On retrieval, the calculation is repeated and, in the event the check values do not match, corrective action can be taken against data corruption.

From 循環(huán)冗余校驗CRC簡介

  • CRC為校驗和的一種,是兩個字節(jié)數(shù)據(jù)流采用二進制除法(沒有借位和進位,使用異或來代替減法)相除所得到的余數(shù)。
  • 其中被除數(shù)是需要計算校驗和的信息數(shù)據(jù)流的二進制表示;除數(shù)是一個長度為(n+1)的預(yù)定義二進制數(shù),通常用多項式的系數(shù)來表示。
  • 在做除法之前,要在信息數(shù)據(jù)之后先加上n個0。冗余碼的位數(shù)是n位。冗余碼的計算方法是,先將信息碼后面補0,補0的個數(shù)是生成多項式最高次冪;將補零之后的信息碼用模二除法(非二進制除法)除以G(X)對應(yīng)的2進制碼,注意除法過程中所用的減法是模2減法(注意是高位對齊),即沒有借位的減法,也就是異或運算。
  • 當被除數(shù)逐位除完時,得到比除數(shù)少一位的余數(shù)。此余數(shù)即為冗余位,將其添加在信息位后便構(gòu)成CRC碼字。

例如,假設(shè)信息碼字為11100011,生成多項式G(X)=X5+X4+X+1,計算CRC碼字。G(X) = X5+X4+X+1,也就是110011,因為最高次是5,所以,在信息碼字后補5個0,變?yōu)?110001100000。

用1110001100000模二除法除以110011,余數(shù)為11010,即為所求的冗余位。因此發(fā)送出去的CRC碼字為原始碼字11100011末尾加上冗余位11010,即 1110001111010。

接收端收到碼字后,采用同樣的方法驗證,即將收到的碼字用模二除法除以110011(是G(X)對應(yīng)的二進制生成碼),發(fā)現(xiàn)余數(shù)是0,則認為碼字在傳輸過程中沒有出錯。

盡管在錯誤檢測中非常有用,CRC并不能可靠地校驗數(shù)據(jù)完整性(即數(shù)據(jù)沒有發(fā)生任何變化),這是因為CRC多項式是線性結(jié)構(gòu),可以非常容易地故意改變量據(jù)而維持CRC不變。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • CRC校驗,全名叫做循環(huán)冗余校驗碼,是數(shù)據(jù)通訊中最常采用的校驗方式。為了學(xué)習(xí)這個CRC,在網(wǎng)上找了好多資料,下面這...
    AmdyTeng閱讀 6,555評論 2 6
  • 前言 CRC校驗(循環(huán)冗余校驗)是數(shù)據(jù)通訊中最常采用的校驗方式。在嵌入式軟件開發(fā)中,經(jīng)常要用到CRC 算法對各種數(shù)...
    Otis4631閱讀 1,858評論 0 3
  • 1、同一個賬號可以發(fā)視頻和文章嗎? 答:可以的,每個賬號可以同時發(fā)布文章和視頻,各5篇; 2、牙牙關(guān)注自媒體號,用...
    f71af9958bde閱讀 416評論 0 0
  • 乘坐了通宵的航班到達慕尼黑,一下飛機就被德國的風(fēng)情給深深的吸引了,機場的出租車不是奔馳就是寶馬,跟國內(nèi)完全不一樣。...
    Mr李洪宇閱讀 543評論 2 5

友情鏈接更多精彩內(nèi)容