亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lib_crc.c

?? crc-16 crc-8 crc-32各種CRC校驗C源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "lib_crc.h"



    /*******************************************************************\
    *                                                                   *
    *   Library         : lib_crc                                       *
    *   File            : lib_crc.c                                     *
    *   Author          : Lammert Bies  1999-2007                       *
    *   E-mail          : info@lammertbies.nl                           *
    *   Language        : ANSI C                                        *
    *                                                                   *
    *                                                                   *
    *   Description                                                     *
    *   ===========                                                     *
    *                                                                   *
    *   The file lib_crc.c contains the private  and  public  func-     *
    *   tions  used  for  the  calculation of CRC-16, CRC-CCITT and     *
    *   CRC-32 cyclic redundancy values.                                *
    *                                                                   *
    *                                                                   *
    *   Dependencies                                                    *
    *   ============                                                    *
    *                                                                   *
    *   lib_crc.h       CRC definitions and prototypes                  *
    *                                                                   *
    *                                                                   *
    *   Modification history                                            *
    *   ====================                                            *
    *                                                                   *
    *   Date        Version Comment                                     *
    *                                                                   *
    *   2007-04-01  1.15    Added CRC16 calculation for Modbus          *
    *                                                                   *
    *   2007-03-28  1.14    Added CRC16 routine for Sick devices        *
    *                                                                   *
    *   2005-12-17  1.13    Added CRC-CCITT with initial 0x1D0F         *
    *                                                                   *
    *   2005-05-14  1.12    Added CRC-CCITT with start value 0          *
    *                                                                   *
    *   2005-02-05  1.11    Fixed bug in CRC-DNP routine                *
    *                                                                   *
    *   2005-02-04  1.10    Added CRC-DNP routines                      *
    *                                                                   *
    *   1999-02-21  1.01    Added FALSE and TRUE mnemonics              *
    *                                                                   *
    *   1999-01-22  1.00    Initial source                              *
    *                                                                   *
    \*******************************************************************/



    /*******************************************************************\
    *                                                                   *
    *   #define P_xxxx                                                  *
    *                                                                   *
    *   The CRC's are computed using polynomials. The  coefficients     *
    *   for the algorithms are defined by the following constants.      *
    *                                                                   *
    \*******************************************************************/

#define                 P_16        0xA001
#define                 P_32        0xEDB88320L
#define                 P_CCITT     0x1021
#define                 P_DNP       0xA6BC
#define                 P_SICK      0x8005



    /*******************************************************************\
    *                                                                   *
    *   static int crc_tab...init                                       *
    *   static unsigned ... crc_tab...[]                                *
    *                                                                   *
    *   The algorithms use tables with precalculated  values.  This     *
    *   speeds  up  the calculation dramaticaly. The first time the     *
    *   CRC function is called, the table for that specific  calcu-     *
    *   lation  is set up. The ...init variables are used to deter-     *
    *   mine if the initialization has taken place. The  calculated     *
    *   values are stored in the crc_tab... arrays.                     *
    *                                                                   *
    *   The variables are declared static. This makes them  invisi-     *
    *   ble for other modules of the program.                           *
    *                                                                   *
    \*******************************************************************/

static int              crc_tab16_init          = FALSE;
static int              crc_tab32_init          = FALSE;
static int              crc_tabccitt_init       = FALSE;
static int              crc_tabdnp_init         = FALSE;

static unsigned short   crc_tab16[256];
static unsigned long    crc_tab32[256];
static unsigned short   crc_tabccitt[256];
static unsigned short   crc_tabdnp[256];



    /*******************************************************************\
    *                                                                   *
    *   static void init_crc...tab();                                   *
    *                                                                   *
    *   Three local functions are used  to  initialize  the  tables     *
    *   with values for the algorithm.                                  *
    *                                                                   *
    \*******************************************************************/

static void             init_crc16_tab( void );
static void             init_crc32_tab( void );
static void             init_crcccitt_tab( void );
static void             init_crcdnp_tab( void );



    /*******************************************************************\
    *                                                                   *
    *   unsigned short update_crc_ccitt( unsigned long crc, char c );   *
    *                                                                   *
    *   The function update_crc_ccitt calculates  a  new  CRC-CCITT     *
    *   value  based  on the previous value of the CRC and the next     *
    *   byte of the data to be checked.                                 *
    *                                                                   *
    \*******************************************************************/

unsigned short update_crc_ccitt( unsigned short crc, char c ) {

    unsigned short tmp, short_c;

    short_c  = 0x00ff & (unsigned short) c;

    if ( ! crc_tabccitt_init ) init_crcccitt_tab();

    tmp = (crc >> 8) ^ short_c;
    crc = (crc << 8) ^ crc_tabccitt[tmp];

    return crc;

}  /* update_crc_ccitt */



    /*******************************************************************\
    *                                                                   *
    *   unsigned short update_crc_sick(                                 *
    *             unsigned long crc, char c, char prev_byte );          *
    *                                                                   *
    *   The function  update_crc_sick  calculates  a  new  CRC-SICK     *
    *   value  based  on the previous value of the CRC and the next     *
    *   byte of the data to be checked.                                 *
    *                                                                   *
    \*******************************************************************/

unsigned short update_crc_sick( unsigned short crc, char c, char prev_byte ) {

    unsigned short short_c, short_p;

    short_c  =   0x00ff & (unsigned short) c;
    short_p  = ( 0x00ff & (unsigned short) prev_byte ) << 8;

    if ( crc & 0x8000 ) crc = ( crc << 1 ) ^ P_SICK;
    else                crc =   crc << 1;

    crc &= 0xffff;
    crc ^= ( short_c | short_p );

    return crc;

}  /* update_crc_sick */



    /*******************************************************************\
    *                                                                   *
    *   unsigned short update_crc_16( unsigned long crc, char c );      *
    *                                                                   *
    *   The function update_crc_16 calculates a  new  CRC-16  value     *
    *   based  on  the  previous value of the CRC and the next byte     *
    *   of the data to be checked.                                      *
    *                                                                   *
    \*******************************************************************/

unsigned short update_crc_16( unsigned short crc, char c ) {

    unsigned short tmp, short_c;

    short_c = 0x00ff & (unsigned short) c;

    if ( ! crc_tab16_init ) init_crc16_tab();

    tmp =  crc       ^ short_c;
    crc = (crc >> 8) ^ crc_tab16[ tmp & 0xff ];

    return crc;

}  /* update_crc_16 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲免费视频| 亚洲欧洲一区二区三区| 青娱乐精品视频| 欧美日韩国产精选| 亚洲一区日韩精品中文字幕| 99天天综合性| 中文字幕一区二区三区不卡 | 中文字幕的久久| 国内精品国产三级国产a久久| 欧美成人aa大片| 久久9热精品视频| 日韩精品最新网址| 极品少妇xxxx精品少妇偷拍| 欧美电影免费观看高清完整版在 | 亚洲国产日韩综合久久精品| 欧美午夜不卡视频| 天天亚洲美女在线视频| 欧美日本在线一区| 日本成人超碰在线观看| 精品国产亚洲一区二区三区在线观看| 蜜臀久久99精品久久久画质超高清| 91精品国产一区二区| 欧美bbbbb| 2014亚洲片线观看视频免费| 国产米奇在线777精品观看| 国产亚洲精品超碰| 成人的网站免费观看| 亚洲精品日日夜夜| 欧美日韩免费观看一区二区三区| 五月激情六月综合| 日韩欧美黄色影院| 国产精品一区二区久激情瑜伽| 国产精品久久久久久久午夜片| 色呦呦日韩精品| 午夜精品一区二区三区三上悠亚| 777午夜精品免费视频| 久久99久久精品| 久久精品人人爽人人爽| 91小视频在线| 日本亚洲欧美天堂免费| 久久久久国产精品厨房| 91欧美激情一区二区三区成人| 亚洲自拍欧美精品| 精品国产成人在线影院| 成人午夜电影网站| 亚洲综合视频网| 日韩精品一区国产麻豆| 成人永久aaa| 一区二区三区日韩欧美| 日韩一区二区三区电影在线观看| 精品在线免费视频| 亚洲同性同志一二三专区| 欧美日韩一区二区三区四区| 精品一区二区三区免费毛片爱| 国产精品视频一区二区三区不卡| 在线视频你懂得一区| 免费在线看成人av| 国产精品国产三级国产aⅴ中文| 欧美系列在线观看| 国产精品亚洲视频| 亚洲影院久久精品| 久久久久综合网| 欧美私模裸体表演在线观看| 精品一区二区三区在线观看 | 国产精品天美传媒| 在线一区二区视频| 精品一区二区三区香蕉蜜桃| 亚洲欧美在线视频观看| 日韩一区二区免费视频| www.综合网.com| 五月开心婷婷久久| 国产精品动漫网站| 91精品国产综合久久福利| 丁香天五香天堂综合| 日欧美一区二区| 中文字幕一区av| 日韩欧美国产一区二区在线播放| 99久久婷婷国产精品综合| 美女mm1313爽爽久久久蜜臀| 国产精品久久久久一区二区三区共| 欧美丰满少妇xxxxx高潮对白| 高清在线不卡av| 蜜臀久久99精品久久久久宅男| 亚洲视频一区二区在线| 欧美精品一区二区三区很污很色的| 欧亚一区二区三区| 成人免费毛片app| 久久疯狂做爰流白浆xx| 一级中文字幕一区二区| 欧美国产禁国产网站cc| 日韩欧美aaaaaa| 欧美日韩在线播放三区四区| 成人av资源在线| 韩国成人福利片在线播放| 亚洲成av人在线观看| 亚洲欧美日韩电影| 国产欧美日韩精品在线| 日韩一区二区在线看| 欧美午夜电影网| 91免费国产在线| 国产精品一色哟哟哟| 奇米精品一区二区三区在线观看 | 欧美一区二区三区视频| 91豆麻精品91久久久久久| 国产成人三级在线观看| 老司机精品视频在线| 亚洲bdsm女犯bdsm网站| 亚洲日本一区二区三区| 国产日产亚洲精品系列| 精品久久久影院| 69精品人人人人| 欧美日本一区二区在线观看| 91福利视频久久久久| 97久久精品人人做人人爽| 成人午夜av电影| 国产精品一色哟哟哟| 国产在线不卡视频| 久色婷婷小香蕉久久| 日本视频一区二区三区| 亚洲成av人片在线| 亚洲成人黄色影院| 亚洲国产视频直播| 亚洲综合免费观看高清完整版| 国产精品久久久久久久久果冻传媒| 久久精品欧美日韩精品| 久久久久高清精品| 久久众筹精品私拍模特| 精品久久一区二区三区| 精品粉嫩超白一线天av| 精品国产1区2区3区| 久久在线观看免费| 精品福利二区三区| 26uuu久久综合| 久久这里只精品最新地址| 久久久91精品国产一区二区精品| 久久五月婷婷丁香社区| 久久久一区二区三区捆绑**| 久久蜜桃一区二区| 国产午夜精品福利| 国产精品丝袜久久久久久app| 国产精品免费视频一区| 国产精品久久精品日日| 1区2区3区精品视频| 亚洲精品一二三| 亚洲一区二区三区中文字幕在线| 亚洲亚洲精品在线观看| 婷婷成人激情在线网| 免费在线观看日韩欧美| 狠狠色狠狠色综合日日91app| 黑人巨大精品欧美一区| 国产精品77777竹菊影视小说| 成人美女视频在线观看18| 97精品国产97久久久久久久久久久久 | 日本成人在线看| 国产综合一区二区| 豆国产96在线|亚洲| 色女孩综合影院| 欧美三级视频在线观看| 日韩视频在线观看一区二区| 精品毛片乱码1区2区3区 | 日韩欧美一区电影| 久久久国产午夜精品| 亚洲欧洲国产日韩| 午夜激情久久久| 久久av老司机精品网站导航| 国产91精品久久久久久久网曝门| www.亚洲免费av| 欧美三级中文字| 欧美大尺度电影在线| 国产欧美日韩另类一区| 一区二区成人在线视频| 美女在线观看视频一区二区| 国产精品1区2区| 色一区在线观看| 日韩欧美一区二区三区在线| 中文字幕久久午夜不卡| 亚洲精品免费在线观看| 美女视频网站久久| 成人激情小说网站| 欧美日韩一区不卡| 精品福利视频一区二区三区| 亚洲视频每日更新| 免费人成在线不卡| www.久久精品| 在线观看91av| 欧美国产激情一区二区三区蜜月| 亚洲一区二区高清| 国产一区久久久| 91福利精品视频| 国产三区在线成人av| 亚洲午夜在线视频| 国产麻豆一精品一av一免费| 欧美中文字幕久久| 久久美女艺术照精彩视频福利播放| 一区二区三区中文字幕精品精品| 日本在线不卡视频一二三区| av在线不卡免费看| 日韩一级片在线观看| 亚洲女同女同女同女同女同69| 日本在线不卡一区|