c語言實現CRC校驗和

2021-08-19 15:10:56 字數 1227 閱讀 6539

下面我就將今天的demo**簡單的注釋一下:

在傳送方的buffer[22]中,前二十個資料為要傳送的資料,而後兩位即buffer[20]和buffer[21]中的資料就是函式int calcrc(int crc, const char *buf, int len)產生的crc校驗和。**如下:

intmain()

;int crc = calcrc(

0, buffer,

20);

//crc為16位校驗碼

buffer[

21] = (

char)crc;

//取校驗碼低八位

buffer[

20] = (

char)(crc >>

8);//取校驗碼高八位

}在接收方,將接收到的buffer[22]中的所有資料帶入函式int calcrc(int crc, const char *buf, int len)中進行計算,若返回值為0,則說明接收的資料是正確無誤的。其實在操作工程中可以使用網路抓包軟體進行監控和驗證。

int result = calcrc(

0, buffer,

22);

if(result == 0)

整個demo的**如下:

int calcrc(

int crc, 

const

char *buf, 

intlen)

else}}

remainder=remainder^

0x0000

;return

remainder;

}int main(

int argc, _tchar*

argv)

;int crc = calcrc(

0, buffer, 

20);

//計算得到的16位crc校驗碼

buffer[

21] = (

char)crc;

//取校驗碼的低八位

buffer[

20] = (

char)(crc >> 

8);//取校驗碼的高八位

//接收方在接收到buffer中的資料時,代入calcrc進行計算,若result的值為0,則說明資料傳輸過程無誤

int result = calcrc(

0, buffer, 

22);

return0;

}

CRC校驗的理解和C語言實現

1 crc是什麼 crc檢驗的基本思想是利用線性編碼理論,在傳送端根據要傳送的k位二進位製碼序列,以一定的規則產生乙個檢驗碼r位 就是crc碼 附在資訊後面,構成乙個新的二進位製碼序列數共 k r 位,最後傳送出去。接收端根據同樣的規則校驗,以確定傳送中是否出錯。接收端有兩種處理方式 1 計算k位序...

CRC冗餘校驗的C語言實現

crc即迴圈冗餘校驗 是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。對於16位迴圈冗餘效驗 crc 16...

CRC校驗之查表法C語言實現

本文主要參考 實現查表法快速計算crc7.crc7應用在sd mmc的資料校驗,生成多項式x 7 x 3 1,生成的校驗值為7bit.很容易想到資料以 1byte 為單位進行計算比較方便.c語言 實現 include include includeusing namespace std const ...