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

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

?? xcrc.cpp

?? BCB的學習資料
?? CPP
字號:
//---------------------------------------------------------------------------


#pragma hdrstop

#include "XCRC.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)
namespace zdhsoft
{
XInt XCRC::m_crcTable32[256];     //crc32表
XInt XCRC::m_crcTable16[256];     //crc16表

/*
////////////////////////////////////////////////////////////////////////////////
[Name]initTable32
[Title]初始化CRC32表
////////////////////////////////////////////////////////////////////////////////
[Description]
    如果這個表,在操作之前,沒有被初始化,那么就進行初始化
[Version]2.0
[Author] Rex Winter
[Data]2004-12-13
////////////////////////////////////////////////////////////////////////////////
*/
void XCRC::initTable32()
{
    static bool bNotInit = true;
    if( bNotInit )
    {
        bNotInit = false;
        XInt crc_accum;
        for(int i=0; i<256; i++)
        {
            crc_accum = (i << 24);
            for(int j=0; j<8; j++)
            {
                if( (crc_accum & 0x80000000)!=0)
                {
                    crc_accum = ( crc_accum << 1 ) ^ 0x04c11db7;
                }
                else
                {
                    crc_accum = ( crc_accum << 1 );
                }
            }
            m_crcTable32[i] = crc_accum;
        }
    }
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]initTable16
[Title]初始化CRC16表
////////////////////////////////////////////////////////////////////////////////
[Description]
    如果這個表,在操作之前,沒有被初始化,那么就進行初始化
[Version]1.0
[Author] Rex Winter
[Data]2005-6-25
////////////////////////////////////////////////////////////////////////////////
*/
void XCRC::initTable16()
{
    static bool bNotInit = true;
    if( bNotInit )
    {
        bNotInit = false;
        XWord crc_accum;
        for(int i=0; i<256; i++)
        {
            crc_accum =(XWord)(i << 8);
            for(int j=0; j<8; j++)
            {
                if( (crc_accum & 0x8000)!=0)
                {
                    crc_accum =(XWord)(( crc_accum << 1 ) ^ 0x8005);
                }
                else
                {
                    crc_accum = (XWord)( crc_accum << 1 );
                }
            }
            m_crcTable16[i] = crc_accum;
        }
    }
}
//生成取并得CRC32的值
/*
////////////////////////////////////////////////////////////////////////////////
[Name]CRC32
[Title]取CRC32的值
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const XByte *> data 將要生成CRC32的源數據
    <int>size 源數據的字節數
[Return]
    <XDWord>返回生成的CRC32值 
[Description]
    根據指定的數據源,生成一個CRC32
[Version]2.1
[Author] Rex Winter
[Data]2005-6-24
////////////////////////////////////////////////////////////////////////////////
*/
XDWord XCRC::CRC32(const void * data,int size)
{
    initTable32();
    const XByte * srcdata = (const XByte *)data;
    XDWord crc = 0xffffffff;
    if(size <= 0) return crc;
    int len = size;
    for(int i=0;i<len;i++)
    {
      crc = (crc << 8) ^ m_crcTable32[((crc >> 24) ^ (*srcdata++)) & 0xff];
    }
    return crc;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]CRC32
[Title]取CRC32的值
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const XArray<XByte> &> data 將要生成CRC32的字節數組
[Return]
    <XDWord>返回生成的CRC32值 
[Description]
    根據指定的字節數組,生成一個CRC32
[Version]2.1
[Author] Rex Winter
[Data]2005-6-24
////////////////////////////////////////////////////////////////////////////////
*/
XDWord XCRC::CRC32(const XArray<XByte> & data)
{
    return CRC32(data.Data(),data.GetLength());
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]CRC32
[Title]取CRC32的值
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const XDynamicArray<XByte> &> data 將要生成CRC32的動態字節數組
[Return]
    <XDWord>返回生成的CRC32值 
[Description]
    根據指定的動態字節數組,生成一個CRC32
[Version]2.1
[Author] Rex Winter
[Data]2005-6-24
////////////////////////////////////////////////////////////////////////////////
*/
XDWord XCRC::CRC32(const XDynamicArray<XByte> &data)
{
    return CRC32(data.Data(),data.GetLength());
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]CRC32
[Title]取CRC32的值
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const XDynamicArray<XByte> &> data 將要生成CRC32的字節緩沖區
[Return]
    <XDWord>返回生成的CRC32值 
[Description]
    根據指定的字節緩沖區,生成一個CRC32
[Version]2.1
[Author] Rex Winter
[Data]2005-6-24
////////////////////////////////////////////////////////////////////////////////
*/
XDWord XCRC::CRC32(const XByteBuffer & data)
{
    return CRC32(data.Data(),data.GetLength());
}

//生成取并得CRC16的值
/*
////////////////////////////////////////////////////////////////////////////////
[Name]CRC16
[Title]取CRC16的值
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const XByte *> data 將要生成CRC32的源數據
    <int>size 源數據的字節數
[Return]
    <XWord>返回生成的CRC16值
[Description]
    根據指定的數據源,生成一個CRC16
[Version]1.0
[Author] Rex Winter
[Data]2005-6-25
////////////////////////////////////////////////////////////////////////////////
*/
XWord XCRC::CRC16(const void * data,int size)
{
    initTable16();
    const XByte * srcdata = (const XByte *)data;
    XWord crc = 0;
    if( size <=0 ) return crc;
    for(int i=0;i<size;i++)
    {
        crc =(XWord)(( crc << 8 ) ^ m_crcTable16[ (( crc >> 8 ) ^ (*srcdata++)) & 0xff]);
    }
    return crc;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]CRC16
[Title]取CRC16的值
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const XArray<XByte> &> data 將要生成CRC16的字節數組
[Return]
    <XWord>返回生成的CRC16值
[Description]
    根據指定的字節數組,生成一個CRC16
[Version]1.0
[Author] Rex Winter
[Data]2005-6-25
////////////////////////////////////////////////////////////////////////////////
*/
XWord XCRC::CRC16(const XArray<XByte> & data)
{
    return CRC16(data.Data(),data.GetLength());
/*
////////////////////////////////////////////////////////////////////////////////
[Name]CRC16
[Title]取CRC16的值
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const XDynamicArray<XByte> &> data 將要生成CRC16的字節數組
[Return]
    <XWord>返回生成的CRC16值
[Description]
    根據指定的字節數組,生成一個CRC16
[Version]1.0
[Author] Rex Winter
[Data]2005-6-25
////////////////////////////////////////////////////////////////////////////////
*/
}
XWord XCRC::CRC16(const XDynamicArray<XByte> &data)
{
    return CRC16(data.Data(),data.GetLength());
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]CRC16
[Title]取CRC16的值
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const XByteBuffer &> data 將要生成CRC16的字節緩沖區
[Return]
    <XWord>返回生成的CRC16值
[Description]
    根據指定的字節數組,生成一個CRC16
[Version]1.0
[Author] Rex Winter
[Data]2005-6-25
////////////////////////////////////////////////////////////////////////////////
*/
XWord XCRC::CRC16(const XByteBuffer & data)
{
    return CRC16(data.Data(),data.GetLength());
}

}//end of namespace zdhsoft

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产三级电影视频| 国产婷婷色一区二区三区在线| 美腿丝袜亚洲一区| 日韩女优毛片在线| 国产自产v一区二区三区c| 国产日韩亚洲欧美综合| 久久99精品国产麻豆不卡| 欧美日韩电影一区| 裸体健美xxxx欧美裸体表演| 精品电影一区二区| 国产91富婆露脸刺激对白| 中文字幕日本乱码精品影院| 在线日韩国产精品| 五月婷婷久久丁香| 精品国产乱码久久久久久影片| 国产精品一区二区久久精品爱涩 | 欧美一区二区三区在线看| 午夜a成v人精品| 久久蜜桃av一区二区天堂| 不卡的电影网站| 亚洲一区二区三区免费视频| 日韩一区二区免费在线电影| 国产一区二区三区高清播放| 亚洲欧美在线观看| 欧美伦理电影网| 国产在线日韩欧美| 亚洲男人的天堂在线aⅴ视频| 欧美日韩1区2区| 另类小说一区二区三区| 国产精品美女一区二区| 欧美在线观看视频一区二区| 精品一区二区在线播放| 亚洲欧洲日韩女同| 欧美一区二区三区公司| 成人黄色软件下载| 亚洲第一主播视频| 国产视频一区在线观看| 欧美伊人久久久久久久久影院| 久久av资源网| 亚洲综合色视频| 色婷婷综合久久久中文一区二区| 日日摸夜夜添夜夜添国产精品| 久久婷婷久久一区二区三区| 色综合天天综合网天天看片| 蜜臀精品一区二区三区在线观看 | 制服丝袜国产精品| 顶级嫩模精品视频在线看| 亚洲高清久久久| 久久午夜老司机| 精品视频一区二区三区免费| 国产成人一区在线| 香蕉久久夜色精品国产使用方法 | 国产精品资源网站| 亚洲国产色一区| 中文字幕精品—区二区四季| 欧美精品99久久久**| 成人va在线观看| 毛片一区二区三区| 亚洲欧美日韩小说| 久久蜜桃av一区精品变态类天堂| 欧美日韩国产天堂| 99久久99久久免费精品蜜臀| 久久国产精品无码网站| 亚洲自拍与偷拍| 国产农村妇女毛片精品久久麻豆 | 国产欧美在线观看一区| 欧美一级日韩一级| 一本高清dvd不卡在线观看| 国产美女视频91| 日本视频一区二区三区| 一区二区三区丝袜| 中文字幕不卡三区| 欧美精品一区二区精品网| 欧美日韩一区二区三区视频| av在线播放不卡| 国产精品一区二区三区网站| 视频在线观看一区| 一级特黄大欧美久久久| 国产精品久久久久久妇女6080| 欧美va天堂va视频va在线| 欧美日韩成人在线一区| 在线免费观看日本欧美| av一二三不卡影片| 国产精品996| 久久99国产精品久久| 婷婷综合另类小说色区| 一区二区三区四区蜜桃| 亚洲欧美日韩国产一区二区三区 | 亚洲国产成人porn| 亚洲三级在线观看| 国产精品福利在线播放| 国产日韩高清在线| 久久久不卡网国产精品一区| 精品日韩在线观看| 日韩美一区二区三区| 777奇米成人网| 欧美日韩国产天堂| 欧美视频第二页| 欧美午夜不卡视频| 色天使色偷偷av一区二区| 成人午夜精品在线| av男人天堂一区| 99麻豆久久久国产精品免费 | 精品欧美一区二区三区精品久久| 69p69国产精品| 欧美日韩的一区二区| 欧美日韩夫妻久久| 91麻豆精品国产91久久久久| 欧美日韩激情一区| 欧美剧情电影在线观看完整版免费励志电影 | www.日本不卡| 99精品一区二区三区| 9人人澡人人爽人人精品| 9色porny自拍视频一区二区| 97久久超碰国产精品| 一本大道综合伊人精品热热| 色婷婷亚洲婷婷| 欧美性高清videossexo| 欧美日韩一级二级三级| 正在播放亚洲一区| 日韩一区二区在线免费观看| 欧美电影免费观看高清完整版| 精品少妇一区二区三区日产乱码| 精品国产免费久久| 国产日韩欧美精品综合| 国产精品国产精品国产专区不蜜| 亚洲黄色小视频| 亚洲va中文字幕| 美女视频一区二区| 国产一区免费电影| 成人精品亚洲人成在线| 色香蕉久久蜜桃| 欧美日韩国产高清一区| 日韩欧美电影在线| 欧美激情综合五月色丁香小说| 亚洲欧美在线aaa| 亚洲123区在线观看| 美国精品在线观看| 丁香婷婷深情五月亚洲| 91啪在线观看| 欧美日韩dvd在线观看| 久久亚洲一区二区三区四区| 国产精品毛片久久久久久久| 一区二区三区在线视频免费观看| 亚洲va国产va欧美va观看| 久久99精品久久久久| 99久久免费国产| 欧美日韩一区视频| 精品成人免费观看| 国产精品成人免费在线| 亚洲成a人片综合在线| 国产乱码字幕精品高清av| 91在线你懂得| 欧美一区欧美二区| 亚洲国产精品ⅴa在线观看| 亚洲一区二区三区四区五区中文 | 国产乱码精品一区二区三区忘忧草 | 日本sm残虐另类| 国产成人福利片| 欧美视频一区二区三区四区| 久久亚洲精华国产精华液| 国产精品白丝在线| 日韩国产欧美在线播放| 国产jizzjizz一区二区| 欧美色综合网站| 久久久久免费观看| 亚洲亚洲人成综合网络| 国产一区二区三区香蕉| 91福利国产精品| 久久免费国产精品| 亚洲成人精品一区| 成人午夜av在线| 91精品国产综合久久精品麻豆| 国产精品毛片无遮挡高清| 免费视频最近日韩| av电影在线不卡| 日韩精品一区二区在线观看| 亚洲欧美另类小说| 韩国视频一区二区| 欧美午夜精品久久久| 欧美国产成人在线| 日韩av网站免费在线| 99国产精品久久久久久久久久| 欧美一二三在线| 一区二区三区欧美| 国产精品18久久久久久vr| 欧美日韩一区二区在线观看视频 | 成人精品亚洲人成在线| 欧美一区二区三区视频在线 | 欧美日韩激情一区| 亚洲欧洲精品一区二区三区| 裸体健美xxxx欧美裸体表演| 欧美在线free| 国产精品美女久久久久久久网站| 日韩精彩视频在线观看| 色婷婷国产精品综合在线观看| 国产色综合一区| 免费看日韩精品| 欧美色图在线观看| 最新中文字幕一区二区三区 |