CRC計算基本原理

2021-08-20 01:49:57 字數 1123 閱讀 1641

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

其根本思想就是先在要傳送的幀後面附加乙個數,生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,它要使所生成的新幀能與傳送端和接收端共同選定的某個特定數進行模2除法。到達接收端後,再把接收到的新幀除以(同樣採用「模2除法」)這個選定的除數。因為在傳送端傳送資料幀之前就已通過附加乙個數,做了「去餘」處理(也就已經能整除了),所以結果應該是沒有餘數。如果有餘數,則表明該幀在傳輸過程中出現了差錯。

具體來說,crc校驗原理就是以下幾個步驟:

(1)先選擇(可以隨機選擇,也可按標準選擇)乙個用於在接收端進行校驗時,對接收的幀進行除法運算的除數(是二進位制比較特串,通常是以多項方式表示,所以crc又稱多項式編碼方法,這個多項式也稱之為「生成多項式」)。

多項式:若多項式為g(x)=x3+x+1,則除數為1011(位數為最高次冪+1)。

(2)看所選定的除數二進位制位數(假設為k位),然後在要傳送的資料幀(假設為m位)後面加上k-1位「0」,然後以這個加了k-1個「0「的新幀(一共是m+k-1位)以「模2除法」方式除以上面這個除數,所得到的餘數(也是二進位制的位元串)就是該幀的crc校驗碼,也稱之為fcs(幀校驗序列)。但要注意的是,餘數的位數一定要是比除數字數只能少一位,哪怕前面位是0,甚至是全為0(附帶好整除時)也都不能省略。

附: 模2加法:1+1 = 0 ;0+1 = 1;1+0=1;0+0 = 0

模2減法:1- 0 = 1; 0- 0 = 0;0-1 = 0;1-1 = 0

無進製,亦無借位,乘除同理。

以下以一例作為解釋:

假設crc生成多項式為g(x) = x5 + x4 +x+1,要傳送的二進位制序列為100101110,求crc校驗碼是多少。

由多項式得,除數為110011,共6位,則crc校驗碼有5位。

則需要在原二進位制序列中加6-1 = 5個0可得,100101110 00000

二者相除可得;

這裡寫描述

可得crc校驗碼位:11010

可得新的二進位制序列位 100101110 11010

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...

計算機基本原理

1.什麼是語言?什麼是python語言?語言是乙個事物與另乙個事物溝通的介質,python語言則是程式設計師與計算機溝通的渠道。2.什麼是程式設計?程式設計就是程式設計師將自己想要讓計算機做的事情用程式語言翻譯出來寫到一系列的檔案中,這一系列的檔案稱之為程式 軟體。3.為何要程式設計?程式設計的目的...

8 2 1 基本原理

乙個舞台動畫物件在包含許多舞台資訊 出現在何處,佔多大面積,處在什麼角度,是否可見 這些資訊分別儲存在動畫物件的屬性中。在 中讀取這些屬性可以了解物件的位置 大小 角度等狀態資訊 修改這些屬性可以改變物件的位置 大小 角度等狀態。如果從資料的角度去理解,動畫就是在固定時間間隔點不斷修改動畫物件某項屬...