<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現在位置:范文先生網>理工論文>計算機信息技術>用C語言實現CRC校驗計算

      用C語言實現CRC校驗計算

      時間:2023-02-21 00:09:27 計算機信息技術 我要投稿
      • 相關推薦

      用C語言實現CRC校驗計算

      C語言實現CRC校驗計算

      <?xml:nmespce prefix = o ns ="urn:schems-microsoft-com:office:office" />Clcul

      tes CRC quickly using the tble-lookup method

       

      作  者:董云  YUN DONG

      工作單位:黃埔海關技術處工程師

      通訊地址:廣州市經濟技術開發區志誠大道海關大樓

      電話號碼:020-82130556

      郵政編碼:510730

      電子郵件: dy168@163.net

       

        要:

      簡述CRC算法原理,給出一種新穎快速的查表計算方法,并給出用C語言編寫的算法源程序。關鍵詞:CRC

      、多項式、查表法  在編寫數據傳輸程序時,數據容錯是一個非常重要的問題。循環冗余位校驗(Cyclicl Redundncy Check英文簡稱CRC)是目前運用非常廣泛的一種數據容錯方法,在數據傳輸,數據壓縮等領域運用極其廣泛。CRC的實現分為硬件和軟件兩種方法,其中軟件實現的關鍵在于計算速度。如果單純模擬硬件實現方法,則計算速度較慢。筆者在編制一個數據通訊軟件中,運用了一種新穎的查表法計算CRC,速度很快,效果極佳。

        首先介紹其原理,如果每次參與CRC計算的信息為一個字節,該信息字節加到16位的累加器中去時,只有累加器的高8位或低8位與信息字節相互作用(異或),相互作用(異或)的結果記為組合值,那么累加器中的新值等于組合

      值加上(按模2異或)累加器中未改變的那一半即為新的CRC值。

        組合值只有256種可能,因此可利用硬件模擬算法先算好它們的CRC值預先填入一張表中,該表的每一單元對應相對值的CRC。這樣就可以通過查表法來計算CRC值,以便大大提高CRC運算的速度。下面給出用C語言編制的計算程序。

        首先將CRC

      生成多項式及CRC值表定義為一個頭文件CRC.H

        #define CRC_CCITT 0x1021  //CCITT多項式

          #define REV_CCITT 0x8408  //反轉CCITT多項式

          #define CRC16 0x8005      //CRC16

      多項式

          #define REV_CRC16 0x

      001  //反轉CRC16多項式

          unsigned short crc_tble[256]; //CRC值表

      注:16CCITT多項式(

      X16 +X12 +X5 +1)和16CRC16多項式(X16 +X15 +X2+1)為兩種最常用的CRC多項式。反轉多項式是指在數據通訊時,信息字節先傳送或接收低位字節,如重新排位影響CRC計算速度,故設反轉多項式。

        造表和查表法CRC計算函數。

      #include "crc.h"

      void mk_crctble(unsigned short genpoly)

        unsigned short crc_tble[256];

      unsigned short

      ccnum=0;

      unsigned short i,j,k;

         for(i=0,k=0;i<256;i++,k++)   

         i<<=8;

            for(j=8;j>0;j--)     

             if((i^ccnum)&0x8000)

              &

      nbsp;

      ccnum=(

      ccnum<<=1)^genpoly;

             else 

      ccnum<<=1;

         i<<=1;        

            crc_tble[k]=

      ccnum;   

        void crc_upd

      te(unsigned short d

      t

      ,unsigned short

      ccnum)

        

      ccnum=(

      ccnum<<=8)^crc_tble[(

      ccnum>>8)^d

      t

      ]; 

      【用C語言實現CRC校驗計算】相關文章:

      計算法簡單實現crc校驗08-06

      用C語言實現按鈕新技術08-06

      CRC校驗實用程序庫08-06

      C語言實現串行通信接口程序08-06

      用匯編語言實現BCH解碼校驗算法08-06

      AVR單片機CRC校驗碼的查表與直接生成08-06

      用Verilog HDL實現I2C總線功能08-06

      用TMS320C54X實現Vertibi譯碼器08-06

      用P89C664實現I2C總線大批量數據的自動存儲08-06

      主站蜘蛛池模板: 欧美人与动人物牲交免费观看| 中文字幕少妇人妻精品| 亚洲欧美综合中文| 色综合久久久久综合体桃花网| 久热这里有精品视频在线| 亚洲永久精品日韩成人av| 中文字幕日韩精品国产| 在线 国产 欧美 专区| av偷拍亚洲一区二区三区| 精品亚洲香蕉久久综合网| 人妻精品中文字幕av| 亚洲欧美中文日韩V在线观看 | 蜜芽久久人人超碰爱香蕉 | 国产目拍亚洲精品区一区| 久久精品国产99久久久古代| 午夜自产精品一区二区三区| 亚洲sm另类一区二区三区| 高清美女视频一区二区三区| 99久久精品费精品国产一区二| 国产精品久久香蕉免费播放| 天堂资源在线| 虎白女粉嫩尤物福利视频| 日日橹狠狠爱欧美视频| 成人污视频| 国内精品自线在拍| 日日摸夜夜添夜夜添国产三级| 成人一区二区三区激情视频| 国产超碰无码最新上传| 国产一区二区视频在线看| 亚洲国产精品一区二区第一页| 日韩V欧美V中文在线| 妓女妓女一区二区三区在线观看 | 四虎永久免费很黄的视频| 真人无码作爱免费视频| 女人香蕉久久毛毛片精品| 亚洲精品综合久中文字幕| 免费人成网站免费看视频| 国产黄色一区二区三区四区| 色秀网在线观看视频免费| 宅男噜噜噜66网站高清| 男女一级国产片免费视频|