當前位置:首頁 » 操作系統 » crc校驗演算法

crc校驗演算法

發布時間: 2022-02-05 08:57:54

『壹』 如何計算CRC校驗碼

我先給你舉個例子:
已知信息位為1100,生成多項式G(x) = x3+x+1,求CRC碼。
M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011
M(x)*x3 / G(x) = 1110 + 010 /1011 R(x) = 010
CRC碼為: M(x)*x 3+R(x)=1100000+010 =1100010
其原理是:CRC碼一般在k位信息位之後拼接r位校驗位生成。編碼步驟如下:
(1)將待編碼的k位信息表示成多項式 M(x)。
(2)將 M(x)左移 r 位,得到 M(x)*xr 。
(3)用r+1位的生成多項式G(x)去除M(x)*xr 得到余數R(x)。
(4)將M(x)*xr 與R(x)作模2加,得到CRC碼。

『貳』 如何計算CRC校驗位

在CRC計算時只用8個數據位,起始位及停止位,如有奇偶校驗位也包括奇偶校驗位,都不參與CRC計算。CRC計算方法是:1、 載入一值為0XFFFF的16位寄存器,此寄存器為CRC寄存器。2、 把第一個8位二進制數據(即通訊信息幀的第一個位元組)與16位的CRC寄存器的相異或,異或的結果仍存放於該CRC寄存器中。3、 把CRC寄存器的內容右移一位,用0填補最高位,並檢測移出位是0還是1。4、 如果移出位為零,則重復第三步(再次右移一位);如果移出位為1,CRC寄存器與0XA001進行異或。5、 重復步驟3和4,直到右移8次,這樣整個8位數據全部進行了處理。6、 重復步驟2和5,進行通訊信息幀下一個位元組的處理。7、 將該通訊信息幀所有位元組按上述步驟計算完成後,得到的16位CRC寄存器的高、低位元組進行交換8、 最後得到的CRC寄存器內容即為:CRC校驗碼。

『叄』 modbus中如何計算CRC效驗(人工計算)

在CRC計算時只用8個數據位,起始位及停止位,如有奇偶校驗位也包括奇偶校驗位,都不參與CRC計算。

CRC計算方法是:

1、 載入一值為0XFFFF的16位寄存器,此寄存器為CRC寄存器。

2、 把第一個8位二進制數據(即通訊信息幀的第一個位元組)與16位的CRC寄存器的相異或,異或的結果仍存放於該CRC寄存器中。

3、 把CRC寄存器的內容右移一位,用0填補最高位,並檢測移出位是0還是1。

4、 如果移出位為零,則重復第三步(再次右移一位);如果移出位為1,CRC寄存器與0XA001進行異或。

(3)crc校驗演算法擴展閱讀:

計算步驟為:

(1).預置 16 位寄存器為十六進制 FFFF(即全為 1) ,稱此寄存器為 CRC 寄存器;

(2).把第一個 8 位數據與 16 位 CRC 寄存器的低位相異或,把結果放於 CRC 寄

存器;

(3).檢測相異或後的CRC寄存器的最低位,若最低位為1:CRC寄存器先右移1位,再與多項式A001H進行異或;若為0,則CRC寄存器右移1位,無需與多項式進行異或。

(4).重復步驟 3 ,直到右移 8 次,這樣整個 8 位數據全部進行了處理;

(5).重復步驟 2 到步驟4,進行下一個 8 位數據的處理;

(6).最後得到的 CRC 寄存器即為 CRC 碼。

『肆』 crc校驗碼計算方法是什麼

已知信息位為1100,生成多項式G(x) = x3+x+1,求CRC碼。

M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011

M(x)*x3 / G(x) = 1110 + 010 /1011 R(x) = 010

CRC碼為: M(x)*x 3+R(x)=1100000+010 =1100010

其原理是:CRC碼一般在k位信息位之後拼接r位校驗位生成。編碼步驟如下:

(1)將待編碼的k位信息表示成多項式 M(x)。

(2)將 M(x)左移 r 位,得到 M(x)*xr 。

(3)用r+1位的生成多項式G(x)去除M(x)*xr 得到余數R(x)。

(4)將M(x)*xr 與R(x)作模2加,得到CRC碼。

(4)crc校驗演算法擴展閱讀:

CRC校驗碼計算詳解:採用CRC進行差錯檢驗,生成多項式為G(X)=X4+X+1,信息碼字為10110,則計算出的CRC校驗碼是:A. 0000 B. 0100 C. 0010 D.1111

符號表示假定:多項式和多項式的系數排列均用相同的符號表示,如

G(X)= X4+X+1

G(X)=10011

已知條件如下:

原碼字記做M(X),即:M(X) = 10110

生成多項式記做G(X),即:G(X) = 10011

G(X)的最高階數記做r,此處r = 4

『伍』 CRC碼的計算方法

給信息碼補5個0,然後去除多項式,余數就是較驗碼

『陸』 CRC16校驗碼如何計算

首先G(X)=X3+X+1可以得出G(x)=1011[G(x)中的1就是二進制第0位為1,X就是第一位為1,沒有X^2,所以第二位為0,X^3則第三位為1。所以就是1011]

M(x)=0011M(x)*x3=0011000

M(x)*x3/G(x)的余數是101所以R(X)=101

CRC碼為:M(x)*x3+R(x)=0011000+010=0011010

在計算機網路通信中

運用CRC校驗時相對於其他校驗方法就有一定的優勢。CRC可以高比例的糾正信息傳輸過程中的錯誤,可以在極短的時間內完成數據校驗碼的計算,並迅速完成糾錯過程,通過數據包自動重發的方式使得計算機的通信速度大幅提高,對通信效率和安全提供了保障。由於CRC演算法檢驗的檢錯能力極強,且檢測成本較低,因此在對於編碼器和電路的檢測中使用較為廣泛。

以上內容參考:網路-CRC

『柒』 CRC校驗的演算法有幾種

具體的找些參考資料吧,一兩句話也說不清楚
http://203.208.35.101/search?q=cache:-sMYoAuCJyAJ:www.powerprotocol.com.cn/CRC/crc_explain.pdf+CRC%E6%A0%A1%E9%AA%8C&hl=zh-CN&ct=clnk&cd=1&gl=cn&st_usg=ALhdy2_AJ0YjhnCWFMb5xtYPvXTzPgd_2Q

http://ke..com/view/575295.html

下面的還有程序實現:
http://www.dzkf.cn/html/qianrushixitong/2006/0905/529.html
http://chinaitpower.com/A200508/2005-08-07/186451.html
http://lunwen.eliu.info/js94.htm

『捌』 CRC校驗是怎麼算的

你這個是CRC16要實現校驗的話,你首先需要知道對方採用的是何種CRC公式不同的CRC公式 得到的校驗碼是不一樣的在知道公式的情況下做crc表,然後按照crc演算法,計算這8個位元組的整體crc如果傳輸沒有錯誤的話,最終的crc值是0也可以計算前六個的crc,然後和最後兩個位元組比較,效果是相同的。

『玖』 CRC32的計算方法

CRC的本質是模-2除法的余數,採用的除數不同,CRC的類型也就不一樣。通常,CRC的除數用生成多項式來表示。 最常用的CRC碼及生成多項式名稱生成多項式。

CRC-12:


(9)crc校驗演算法擴展閱讀

通常的CRC演算法在計算一個數據段的CRC值時,其CRC值是由求解每個數值的CRC值的和對CRC寄存器的值反復更新而得到的。這樣,求解CRC的速度較慢。通過對CRC演算法的研究,我們發現:一個8位數據加到16位累加器中去,只有累加器的高8位或低8位與數據相作用,其結果僅有256種可能的組合值。

因而,我們可以用查表法來代替反復的運算,這也同樣適用於CRC32的計算。本文所提供的程序庫中,函數crchware是一般的16位CRC的演算法。mk-crctbl用以在內存中建立一個CRC數值表。

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:520
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:867
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91