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

校驗碼演算法

發布時間: 2022-08-08 13:34:03

⑴ 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碼。

(1)校驗碼演算法擴展閱讀:

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(Cyclic Rendancy Check)循環冗餘校驗碼
是常用的校驗碼,在早期的通信中運用廣泛,因為早期的通信技術不夠可靠(不可靠性的來源是通信技術決定的,比如電磁波通信時受雷電等因素的影響),不可靠的通信就會帶來『確認信息』的困惑,書上提到紅軍和藍軍通信聯合進攻山下的敵軍的例子,第一天紅軍發了條信息要藍軍第二天一起進攻,藍軍收到之後,發一條確認信息,但是藍軍擔心的是『確認信息』如果也不可靠而沒有成功到達紅軍那裡,那自己不是很危險?於是紅軍再發一條『對確認的確認信息』,但同樣的問題還是不能解決,紅軍仍然不敢冒然行動。

對通信的可靠性檢查就需要『校驗』,校驗是從數據本身進行檢查,它依靠某種數學上約定的形式進行檢查,校驗的結果是可靠或不可靠,如果可靠就對數據進行處理,如果不可靠,就丟棄重發或者進行修復。

CRC碼是由兩部分組成,前部分是信息碼,就是需要校驗的信息,後部分是校驗碼,如果CRC碼共長n個bit,信息碼長k個bit,就稱為(n,k)碼。 它的編碼規則是:
1、首先將原信息碼(kbit)左移r位(k+r=n)
2、運用一個生成多項式g(x)(也可看成二進制數)用模2除上面的式子,得到的余數就是校驗碼。

非常簡單,要說明的:模2除就是在除的過程中用模2加,模2加實際上就是我們熟悉的異或運算,就是加法不考慮進位,公式是:
0+0=1+1=0,1+0=0+1=1
即『異』則真,『非異』則假。
由此得到定理:a+b+b=a 也就是『模2減』和『模2加』直值表完全相同。

有了加減法就可以用來定義模2除法,於是就可以用生成多項式g(x)生成CRC校驗碼。

例如: g(x)=x4+x3+x2+1,(7,3)碼,信息碼110產生的CRC碼就是:
101
11101 | 110,0000
111 01
1 0100
1 1101
1001
余數是1001,所以CRC碼是110,1001

標準的CRC碼是,CRC-CCITT和CRC-16,它們的生成多項式是:
CRC-CCITT=x16+x12+x5+1
CRC-16=x16+x15+x2+1

⑶ 奇校驗碼的運算方法是什麼

奇校驗碼的運算方法是:
發送端只需要對所有消息 位進行異或運算, 得出的值如果是 0, 則校驗碼為 1, 否則為 0。 接收端可以對消息進行相同計 算, 然後比較校驗碼。 也可以對消息連同校驗碼一起計算, 若值是 0 則有差錯,否則校驗通過。
它們都是發送端對消息按照某種演算法計算出校驗碼, 然後將校驗碼和消息一起發送到接收端。 接收端對接收到的消息按 照相同演算法得出校驗碼, 再與接收到的校驗碼比較, 以判斷接收到消息是否正確。 奇偶校驗只需要 1 位校驗碼, 其計算方法也很簡單。
通常說奇偶校驗可以檢測出 1 位差錯, 實際上它可以檢測出任何奇數位差錯。 校驗和的思想也很簡單, 將傳輸的消息當成 8 位(或 16/32 位)整數的序列, 將這些整數加起來 而得出校驗碼, 該校驗碼也叫 校驗和。 校驗和被用在 IP 協議中, 按照 16 位整數運算, 而且其 MSB(Most Significant Bit)的進位被加到結果中。

⑷ 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

⑸ 校驗碼怎麼計算

找到報文整條多條,用常見的xor,奇偶,CRC等都演算一遍比對結果,這是一項需要耐心的工作。。

⑹ 校驗碼的演算法舉例

按照中華人民共和國國家標准GB11643-1999規定中華人民共和國公民身份號碼校驗碼的計算方法即為ISO 7064:1983.MOD 11-2校驗碼計演算法。
假設某一17位數字是 17位數字 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 加權因子 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 368
計算17位數字各位數字與對應的加權因子的乘積的和S:1×7+2×9+3×10+4×5+5×8+6×4+7×2+8×1+9×6+0×3+1×7+2×9+3×10+4×5+5×8+6×4+7×2=368; 計算S÷11的余數T:368 mod 11=5; 計算(12-T)÷11的余數R,如果R=10,校驗碼為字母「X」;如果R≠10,校驗碼為數字「R」:(12-5)mod 11=7。 該17位數字的校驗碼就是7,聚合在一為123456789012345677。
加權因子公式為Wi=2^(n-1)(mod 11),n為數字序列從右到左的從1開始的順序數。

ai 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 ?Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1 全國組織機構代碼由八位數字(或大寫拉丁字母)本體代碼和一位數字(或大寫拉丁字母)校驗碼組成。校驗碼按下列公式計算: 8 C9=11-MOD(∑Ci×Wi,11) i=1 MOD-表示求余函數;i-表示代碼字元從左至右位置序號;
Ci-表示第i位置上的代碼字元的值,採用下列「代碼字元集」所列字元;
C9-表示校驗碼;
Wi-表示第i位置上的加權因子,其數值如下表:
加權因子 i 1 2 3 4 5 6 7 8 Wi 3 7 9 10 5 8 4 2 當MOD函數值為1(即C9=10)時,校驗碼應用大寫拉丁字母「X」表示;當MOD函數值為0(即C9=11)時,校驗碼仍用「0」表示;當C9的值為1至9時,校驗碼直接用C9的值表示。

⑺ 身份證號最後一位數字稱之為校驗碼,校驗碼的計算方式是怎樣的

按照相關規定,身份號是由17個數字和1個數字校驗碼組成的。而最後一位校驗碼,就是檢查身份證是否正確的主要依據。它的計算方法,主要是由前17位乘以不同的系數,最後的總和除以11。在這種情況下,得到的余數,就是校驗碼。

那麼我們在反推的時候,就可以用身份證號乘於系數,當最後得出的余數和末尾校驗碼不同時,就代表這個身份證,是一個假的身份證,不符合我們國家的標准。另外,余數對應的數字不同,並不是說余數就一定是最後一位身份證號碼。

3、為什麼除以11

看到整個計算過程,我們會發現,想要得出校驗碼,並非一件易事。不過在計算中,有人可能會提出疑問,最終的除以為什麼是取11,而不是其他數字。

其實這個問題的答案很簡單,結合校驗碼的功能,11是最容易檢測出問題的存在。同時,它可以覆蓋到大多數身份證,方便進行校驗。畢竟一個國家人口眾多,校驗碼要做到盡可能覆蓋所有人。

⑻ 校驗碼的校驗碼演算法

不同的校驗碼的演算法常常不同。常見的校驗碼演算法有:碼距、奇偶檢驗、海明校驗、循環冗餘校驗等

⑼ 身份證的最後一位的效驗碼的公式是什麼(簡單一點的公式)

公民身份號碼是由17位數字碼和1位校驗碼組成。排列順序從左至右分別為:6位地址碼,8位出生日期碼,3位順序碼和1位校驗碼。
地址碼(身份證地址碼對照表見下面附錄)和出生日期碼很好理解,順序碼表示在同一地址碼所標識的區域范圍內,對同年同月同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。
身份證最後一位校驗碼演算法如下:
1.
將身份證號碼前17位數分別乘以不同的系數,從第1位到第17位的系數分別為:7
9
10
5
8
4
2
1
6
3
7
9
10
5
8
4
2
2.
將得到的17個乘積相加。
3.
將相加後的和除以11並得到余數。
4.
余數可能為0
1
2
3
4
5
6
7
8
9
10這些個數字,其對應的身份證最後一位校驗碼為1
0
X
9
8
7
6
5
4
3
2。
校驗碼計算公式:
公式①中:
i
表示號碼字元從由至左包括校驗碼在內的位置序號;
Ai
表示第i位置上的號碼字元值;
Wi
示第i位置上的加權因數。
加權因數的集合為{7,
9,
10,
5,
8,
4,
2,
1,
6,
3,
7,
9,
10,
5,
8,
4,
2,
1}
v={1,
0,
X,
9,
8,
7,
6,
5,
4,
3,
2}
最後一位的校驗位就是集合v中的第m個元素的值。
下面舉例算一個:
隨便一個號碼,如濟南市市轄區的某位出生於1901年02月03日的男性公民身份號碼前11位(也就是本體碼)為37010119010203997,首先按照公式⑴計算:
然後根據計算的結果,從集合v中查出相應的校驗碼,其中X表示10:
根據集合v,查出計算結果為9的校驗碼3為所以該人員的公民身份號碼應該為
370101190102039973。
說下余數的演算法。
一、兩個異號整數求余
1.函數值符號規律(余數的符號)
mod(負,正)=正
mod(正,負)=負
結論:兩個整數求余時,其值的符號為除數的符號。
2.取值規律
先將兩個整數看作是正數,再作除法運算
①能整除時,其值為0
②不能整除時,其值=除數×(整商+1)-被除數
例:mod(36,-10)=-4
即:36除以10的整數商為3,加1後為4;其與除數之積為40;再與被除數之差為(40-36=4);取除數的符號。所以值為-4。
二、兩個小數求余
取值規律:
被除數-(整商×除數)之後在第一位小數位進行四捨五入。
例:mod(9,1.2)=1
即:9除1.2其整商為7;7與除數1.2之積為8.4;8.4四捨五入之後為8;被除數9與8之差為1。故結果為1。
例:mod(9,2.2)=0
即:9除2.2其整商為4;4與除數2.2這積為8.8;8.8四捨五入之後
為9;被除數9與之差為0,故結果為0.

⑽ 國際條形碼最後一位校驗位是如何計算出來的

計算:

以條形碼 6936983800013為例公式第13位演算法:

1、取出該數的奇數位的和,c1=6+3+9+3+0+0=21;

2、取出該數的偶數位的和,c2=9+6+8+8+0+1=32;

3、將奇數位的和與「偶數位的和的三倍」相加。

4、取出結果的個位數:117(117%10=7);

5、用10減去這個個位數:10-7=3;

6、對得到的數再取個位數(對10去余)3%10=3;

此條形碼分為4個部分,從左到右分別為:

1、第1-3位:共3位,對應該條碼的693,是中國的國家代碼之一。(690--695都是中國大陸的代碼,由國際上分配)

2、第4-8位:共5位,對應該條碼的69838,代表著生產廠商代碼,由廠商申請,國家分配

3、第9-12位:共4位,對應該條碼的0001,代表著廠內商品代碼,由廠商自行確定

4、第13位:共1位,對應該條碼的3,是校驗碼,依據一定的演算法,由前面12位數字計算而得到。

(10)校驗碼演算法擴展閱讀:

編碼規則:

1、唯一性:同種規格同種產品對應同一個產品代碼,同種產品不同規格應對應不同的產品代碼。根據產品的不同性質,如:重量、包裝、規格、氣味、顏色、形狀等等,賦予不同的商品代碼。

2、永久性:產品代碼一經分配,就不再更改,並且是終身的。當此種產品不再生產時,其對應的產品代碼只能擱置起來,不得重復起用再分配給其它的商品。

無含義:為了保證代碼有足夠的容量以適應產品頻繁的更新換代的需要,最好採用無含義的順序碼。

3、條形碼校驗碼公式:首先,把條形碼從右往左依次編序號為「1,2,3,4……」從序號二開始把所有偶數序號位上的數相加求和,用求出的和乘3,再從序號三開始把所有奇數序號上的數相加求和,用求出的和加上剛才偶數序號上的數,然後得出和。再用10減去這個和的個位數,就得出校驗碼。

熱點內容
小米賬號王者傳奇腳本掛機 發布:2025-01-16 10:07:25 瀏覽:916
Vs自帶的c反編譯器在哪找 發布:2025-01-16 10:06:42 瀏覽:55
如何查網線的密碼 發布:2025-01-16 10:03:41 瀏覽:648
java屬性訪問許可權 發布:2025-01-16 09:59:48 瀏覽:524
python掃雷 發布:2025-01-16 09:58:40 瀏覽:963
不需要無障礙的腳本 發布:2025-01-16 09:58:31 瀏覽:705
oracle升級腳本 發布:2025-01-16 09:37:39 瀏覽:21
垂直式壓縮 發布:2025-01-16 09:15:38 瀏覽:532
dijkstra演算法復雜度 發布:2025-01-16 09:15:35 瀏覽:607
伺服器出錯連接不上該怎麼辦 發布:2025-01-16 09:15:31 瀏覽:401