雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C++開發(fā)之CRC校驗實例詳解

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊:

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

         循環(huán)冗余校驗是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯校驗碼,主要用來檢測或校驗數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯誤。其特征是信息字段和校驗字段的長度可以任意選定。

工作原理:

         CRC檢錯方法的工作原理可以從發(fā)送端與接收端兩個方面進行描述。

         1)發(fā)送端將發(fā)送數(shù)據(jù)比特序列當(dāng)作一個多項式f(x),用雙方預(yù)先約定的生成多項式G(x)去除,求得一個余數(shù)多項式R(x)。將余數(shù)多項式加到數(shù)據(jù)多項式之后,一起發(fā)送到接收端。

         2)接收端用同樣的生成多項式G(x)去除接收到的數(shù)據(jù)多項式f'(x),得到計算余數(shù)R'(x)。如果計算余數(shù)多項式R'(x)與接收余數(shù)多項式R(x)相同,表示傳輸無差錯;否則,表示傳輸有差錯,通知發(fā)送端重傳數(shù)據(jù),直至正確為止。

eg:

 1)發(fā)送數(shù)據(jù)比特序列為:f(x)=110011

 2)生成多項式比特序列為:G(x)=11001   (N=5,k=4)

 3)將發(fā)送數(shù)據(jù)比特序列乘以2的4次方,即產(chǎn)生的乘積為:1100110000

 4)將乘積用生成多項式比特序列去除,按模2算法求得余數(shù)為:1001

5)將余數(shù)比特序列加到乘積中得:

      1 1 0 0 1 1 + 1 0 0 1 = 1 1 0 0 1 1 1 0 0 1

6)如果在數(shù)據(jù)傳輸過程中沒有發(fā)送錯誤,接收端收到的帶有CRC校驗碼的數(shù)據(jù)比特序列一定能被相同的生成多項式整除:

CRC的檢錯能力:

    1)能夠檢查出全部離散的1位錯。

    2)能夠檢查出全部離散的2位錯。

    3)能夠檢查出全部奇數(shù)錯。

    4)能夠檢查出全部長度小于或等于k位的突發(fā)錯。

    5)能以[1-(1/2)^(k-1)]的概率檢查出長度為k+1位的突發(fā)錯。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

上一篇:C++類中的繼承實例詳解

欄    目:C語言

下一篇:C語言數(shù)據(jù)結(jié)構(gòu)鏈表隊列的實現(xiàn)

本文標(biāo)題:C++開發(fā)之CRC校驗實例詳解

本文地址:http://m.jygsgssxh.com/a1/Cyuyan/1382.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有