1樓:匿名使用者
crc(cyclic redundancy check)迴圈冗餘校驗碼。
是常用的校驗碼,在早期的通訊中運用廣泛,因為早期的通訊技術不夠可靠(不可靠性的**是通訊技術決定的,比如電磁波通訊時受雷電等因素的影響),不可靠的通訊就會帶來『確認資訊』的困惑,書上提到紅軍和藍軍通訊聯合進攻山下的敵軍的例子,第一天紅軍發了條資訊要藍軍第二天一起進攻,藍軍收到之後,發一條確認資訊,但是藍軍擔心的是『確認資訊』如果也不可靠而沒有成功到達紅軍那裡,那自己不是很危險?於是紅軍再發一條『對確認的確認資訊』,但同樣的問題還是不能解決,紅軍仍然不敢冒然行動。
對通訊的可靠性檢查就需要『校驗』,校驗是從資料本身進行檢查,它依靠某種數學上約定的形式進行檢查,校驗的結果是可靠或不可靠,如果可靠就對資料進行處理,如果不可靠,就丟棄重發或者進行修復。
crc碼是由兩部分組成,前部分是資訊碼,就是需要校驗的資訊,後部分是校驗碼,如果crc碼共長n個bit,資訊碼長k個bit,就稱為(n,k)碼。 它的編碼規則是:
1、首先將原資訊碼(kbit)左移r位(k+r=n)
2、運用乙個生成多項式g(x)(也可看成二進位數)用模2除上面的式子,得到的餘數就是校驗碼。
非常簡單,要說明的:模2除就是在除的過程中用模2加,模2加實際上就是我們熟悉的異或運算,就是加法不考慮進位,公式是:
即『異』則真,『非異』則假。
由此得到定理:a+b+b=a 也就是『模2減』和『模2加』直值表完全相同。
有了加減法就可以用來定義模2除法,於是就可以用生成多項式g(x)生成crc校驗碼。
例如: g(x)=x4+x3+x2+1,(7,3)碼,資訊碼110產生的crc碼就是:
餘數是1001,所以crc碼是110,1001
標準的crc碼是,crc-ccitt和crc-16,它們的生成多項式是:
crc-ccitt=x16+x12+x5+1
crc-16=x16+x15+x2+1
2樓:匿名使用者
crc校驗採用多項式編碼方法。採用crc校驗時,傳送方和接收方用同乙個生成多項式g(x),並且g(x)的首位和最後一位的係數必須為的處理方法是:傳送方以g(x)去除t(x),得到餘數作為crc校驗碼。
校驗時,以計算的校正結果是否為0為據,判斷資料幀是否出錯。
crc校驗可以100%地檢測出所有奇數個隨機錯誤和長度小於等於k(k為g(x)的階數)的突發錯誤。所以crc的生成多項式的階數越高,那麼誤判的概率就越小。ccitt建議:
2048 kbit/s的pcm基群裝置採用crc-4方案,。在ibm的同步資料鏈路控制規程sdlc的幀校驗序列fcs中,使用crc-16,而在ccitt推薦的高階資料鏈路控制規程hdlc的幀校驗序列fcs中,使用出錯的概率比crc-16低倍。由於crc-32的可靠性,把crc-32用於重要資料傳輸十分合適,所以在通訊、計算機等領域運用十分廣泛。
在一些uart通訊控制晶元(如mc6582、intel8273和z80-sio)內,都採用了crc校驗碼進行差錯控制;乙太網卡晶元、mpeg解碼晶元中,也採用crc-32進行差錯控制。
迴圈冗餘校驗碼的舉例
3樓:及琭
例如:g(x)=x^4+x^3+x^2+1,(7,3)碼,資訊碼110產生的crc碼就是:
對於g(x)=x^4+x^3+x^2+1的解釋:(都是從右往左數)x4就是第五位是1,因為沒有x1所以第2位就是0。
11101 | 110,0000(設a=11101 ,b=1100000)
用b除以a做模2運算得到餘數:1001
餘數是1001,所以crc碼是1001,傳輸碼為:110,1001
怎麼求迴圈冗餘效驗碼?
4樓:網友
crc(cyclic redundancy check)迴圈冗餘校驗碼 是常用的校驗碼,在早期的通訊中運用廣泛,因為早期的通訊技術不夠可靠(不可靠性的**是通訊技術決定的,比如。
有關迴圈冗餘校驗碼的問題?
5樓:網友
解因為生成多項試是1011 4位=k+1 k=3位 將1100左移三位為 1100000
1100000除以1011 得校驗位為10 固,結果為。
6樓:蹉燦紫婉娜
解項試1011
4位=k+1
k=3位。1100左移三位。
1100000除1011
校驗位10固,結1100010
迴圈沉餘校驗碼的出錯位和餘數有啥關係?
7樓:我是百人敵
是「迴圈冗餘」
可以由余數唯一定位出錯位(其中0表示正確,不論多項式為何;其餘情況,同一多項式,不同餘數對應不同出錯位)
不同多項式進行校驗時,餘數對應關係不同,所以一般只使用某些多項式。
奇偶校驗碼與迴圈冗餘校驗碼相比有什麼優缺點??速度!!!
8樓:網友
1.奇偶效驗碼數量多,但是有規律可尋。
2.冗餘效驗碼亂且複雜,
迴圈冗餘校驗碼單個突發錯誤的理解
9樓:公尺公尺田共
這種情況中毒的可能性很少。
我這說的都是解決方法加一點理論,如果你想學理論可以看一下長篇大論,軟體方面大概就是程式衝突,系統有問題,原因是這樣。
記憶體被分配為乙個個位址,這個位址用到的時候軟體衝突導致記憶體寫不進,就會出 現這種情況。如果你最近裝了什麼新軟體 謝了試試,還有可能是系統有問題了,比如少了什麼檔案。。。
硬體方面那就是記憶體有問題了,這個位址在記憶體裡是壞的不能存取,當你用到它的時候系統就報錯了,那上面的數字就是損壞的記憶體位址。
解決方法一般都是先軟後硬,像上面說的謝新軟體,不行的話重灌系統,還不行檢測記憶體,有錯更換就行。
如有引用請註明來自leedove
有朋友問為什麼老是玩遊戲的時候出現的多,因為平時的時候用不了那麼多記憶體,也就是說你1g的記憶體有大部分在平時是空閒的,實體地址壞的記憶體剛好又在空閒中所以平時很少報錯,而遊戲時佔用的比較多的記憶體 ,也用到了壞的位址所以有時一開就報錯。
10樓:網友
剛開始學網路概論,我的理解是突發錯誤的位數,不是指發生錯誤的位有多少個,而是指發生錯誤的序列的長度。比如初始為000000的序列,收到時是011010,那麼就是4位突發錯誤1101,突發錯誤的第一位和最後一位是1,中間是0還是1不在乎,突發錯誤前後的位數不能出錯,所以其他位都是0