色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

CRC校驗的最底層原理是什么

錢瀠龍2年前56瀏覽0評論

CRC校驗的最底層原理是什么?

CRC最基礎的運算就是移位運算和異或運算。

由于硬件可以完成CRC運算,即固化CRC算法,故實際運算又被分成左移或右移運算,即CRC成員中的“CRC方向”。

CRC的成員有:

CRCn:常見的有CRC4,CRC8,CRC16,CRC32,CRC64。

權值:即多項式poly,它是CRC運算中的“密鑰”,即算法的核心。

由于上面說過CRC算法分為左移或右移運算,故當左移運算時,權值的最低位D0為“1”時,CRC可逆,否則CRC不可逆。

當右移運算時,權值的最高位Dn-1為“1”時,CRC可逆。否則CRC不可逆。

通俗地說,多項式中含“+1”或“+X0”時,CRC可逆。否則CRC不可逆。

CRC方向:開始已經論述,分為左移或右移運算。

CRC初值:即CRC運算的初始值init,它只對第一個CRC待校驗數據作用,并與其滿足交換律。

CRC出值:即CRC運算過程結束后,它對最后一個運算過程的中間結果異或后的輸出值xorout。

CRC結果:即CRC運算的最終校驗和。

CRC表格:與CRC初值或CRC出值無關,并對連續的待校驗數據(例如00-0xFF)進行CRC運算的校驗和結果流。

CRC簡寫式:它包含了CRCn,CRC權值,CRC方向,CRC初值和CRC出值。它是CRC運算中最為完整的表述。

CRC算法:它至少有五種算法:

1.CRC移位算法。它沒有CRC表格,主要是對CRC權值的移位和異或運算,故相對速度最慢。

2.CRC大表和單表算法,其中大表內有256個查表數據單元。只有一個CRC表格。

3.CRC小表和單表算法,其中小表內只有16個查表數據單元。只有一個CRC表格。它比大表算法慢一倍。

4.CRC大表和雙表組合算法,它比算法2多了一個CRC表格,但數據寬度降低一倍,運算速度比算法2稍慢。它是低位數MCU的最佳選擇。

5.CRC小表和雙表組合算法,它比算法3多了一個CRC表格,但數據寬度降低一倍,運算速度比算法3稍慢。它是低位數MCU的最佳選擇。

學習CRC最底層原理可以從以上5種算法中看出,特別是從移位算法中搞清楚CRC的基本原理和運算。

下圖中的HotCRC計算器就可以自動生成任意CRC權值(CRC表格)的5種C語言表格和源碼。

而且可以根據學習的要求生成更為詳細帶有調試信息的源碼。

java crc8,CRC校驗的最底層原理是什么