CRC迴圈冗餘檢驗的C 實現

2021-10-07 11:27:00 字數 1418 閱讀 4103

程式設計思路

借助vector進行運算,vector中每乙個元素一次代表被除數的一位數,隨運算過程,下標改變,直至全部計算完。所謂的「除」,是借助二進位制數的異或運算實現的。最後實現的使用者效果是,任意輸入待傳送資料和除數,即可得到相應冗餘碼。

實驗過程(具體**)

#include

#include

#include

using

namespace std;

//迴圈冗餘檢驗(crc)

void

main()

cout <<

"請輸入除數:"

; cin >> p;

q = p;

r = p;

for(i =

1; i < p.

length()

; i++

)//再根據除數字數在後面添0得到被除數

for(i =

0; i < p.

length()

; i++

) sign = p.

length()

;//sign為記錄被除數操作到哪一位的標誌數

while

(sign < number.

size()

+1) z =0;

for(i =

0; i < r.

length()

; i++)if

(sign == number.

size()

)break

; x = number.

size()

- sign;

if(x < z)

for(i =

0; i < x; i++

)break;}

for(i =

0; i < r.

length()

- z; i++

)for

(i =

0; i < z; i++)}

cout <<

"冗餘碼為:"

;for

(i =

1; i < r.

length()

; i++

) cout << endl;

system

("pause");

}

測試結果

測試結果正確。

ps:我寫的應該不算簡潔,有同學三十多行就搞定了qaq

CRC檢驗 迴圈冗餘檢驗

一 什麼是crc迴圈冗餘校驗?位元差錯 現實中的 通訊鏈路是不理想的,這也就是說在傳輸過程中可能會產生差錯,1也許會變成0,0或許也會變成1。這就是位元差錯。crc迴圈冗餘校驗則是為了解決資料鏈路層中存在的位元差錯問題。crc迴圈冗餘校驗原理 大多數書上基本上是以二進位制的多項式形式來說明的。其實它...

CRC迴圈冗餘檢驗

現實的通訊鏈路都不會是理想的。位元在傳輸過程中可能會產生差錯 1可能變成0,而0也可能變成1,這叫做位元差錯。crc迴圈冗餘檢驗 是一種根據網路資料報或電腦檔案等資料產生簡短固定位數校驗碼的一種雜湊函式,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。它是利用除法及餘數的原理來作錯誤偵測的。cr...

迴圈冗餘檢驗CRC

1.在傳送端把資料劃分為組,假定每組k個位元,現假定待傳輸資料m 101001,則k 6。2.crc運算就是在資料m後面新增供差錯檢測用的n位冗餘碼,然後構成資料幀傳送過去,一共傳送 k n 位。3.n位冗餘碼可以用二進位制的模2運算得出,這就相當於在m後面新增n個0。4.用上述得到的 k n 位數...