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

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

?? lz.c

?? tinyos2.0版本驅動
?? C
?? 第 1 頁 / 共 2 頁
字號:
        }        /* Was there a good enough match? */        if( (bestlength >= 8) ||            ((bestlength == 4) && (bestoffset <= 0x0000007f)) ||            ((bestlength == 5) && (bestoffset <= 0x00003fff)) ||            ((bestlength == 6) && (bestoffset <= 0x001fffff)) ||            ((bestlength == 7) && (bestoffset <= 0x0fffffff)) )        {            out[ outpos ++ ] = (unsigned char) marker;            outpos += _LZ_WriteVarSize( bestlength, &out[ outpos ] );            outpos += _LZ_WriteVarSize( bestoffset, &out[ outpos ] );            inpos += bestlength;            bytesleft -= bestlength;        }        else        {            /* Output single byte (or two bytes if marker byte) */            symbol = in[ inpos ++ ];            out[ outpos ++ ] = symbol;            if( symbol == marker )            {                out[ outpos ++ ] = 0;            }            -- bytesleft;        }    }    while( bytesleft > 3 );    /* Dump remaining bytes, if any */    while( inpos < insize )    {        if( in[ inpos ] == marker )        {            out[ outpos ++ ] = marker;            out[ outpos ++ ] = 0;        }        else        {            out[ outpos ++ ] = in[ inpos ];        }        ++ inpos;    }    return outpos;}/************************************************************************** LZ_CompressFast() - Compress a block of data using an LZ77 coder.*  in     - Input (uncompressed) buffer.*  out    - Output (compressed) buffer. This buffer must be 0.4% larger*           than the input buffer, plus one byte.*  insize - Number of input bytes.*  work   - Pointer to a temporary buffer (internal working buffer), which*           must be able to hold (insize+65536) uint32_tegers.* The function returns the size of the compressed data.*************************************************************************/int LZ_CompressFast( unsigned char *in, unsigned char *out,    uint32_t insize, uint32_t *work ){    unsigned char marker, symbol;    uint32_t  inpos, outpos, bytesleft, i, index, symbols;    uint32_t  offset, bestoffset;    uint32_t  maxlength, length, bestlength;    uint32_t  histogram[ 256 ], *lastindex, *jumptable;    unsigned char *ptr1, *ptr2;    /* Do we have anything to compress? */    if( insize < 1 )    {        return 0;    }    /* Assign arrays to the working area */    lastindex = work;    jumptable = &work[ 65536 ];    /* Build a "jump table". Here is how the jump table works:       jumptable[i] points to the nearest previous occurrence of the same       symbol pair as in[i]:in[i+1], so in[i] == in[jumptable[i]] and       in[i+1] == in[jumptable[i]+1], and so on... Following the jump table       gives a dramatic boost for the string search'n'match loop compared       to doing a brute force search. The jump table is built in O(n) time,       so it is a cheap operation in terms of time, but it is expensice in       terms of memory consumption. */    for( i = 0; i < 65536; ++ i )    {        lastindex[ i ] = 0xffffffff;    }    for( i = 0; i < insize-1; ++ i )    {        symbols = (((uint32_t)in[i]) << 8) | ((uint32_t)in[i+1]);        index = lastindex[ symbols ];        lastindex[ symbols ] = i;        jumptable[ i ] = index;    }    jumptable[ insize-1 ] = 0xffffffff;    /* Create histogram */    for( i = 0; i < 256; ++ i )    {        histogram[ i ] = 0;    }    for( i = 0; i < insize; ++ i )    {        ++ histogram[ in[ i ] ];    }    /* Find the least common byte, and use it as the marker symbol */    marker = 0;    for( i = 1; i < 256; ++ i )    {        if( histogram[ i ] < histogram[ marker ] )        {            marker = i;        }    }    /* Remember the marker symbol for the decoder */    out[ 0 ] = marker;    /* Start of compression */    inpos = 0;    outpos = 1;    /* Main compression loop */    bytesleft = insize;    do    {        /* Get pointer to current position */        ptr1 = &in[ inpos ];        /* Search history window for maximum length string match */        bestlength = 3;        bestoffset = 0;        index = jumptable[ inpos ];        while( (index != 0xffffffff) && ((inpos - index) < LZ_MAX_OFFSET) )        {            /* Get pointer to candidate string */            ptr2 = &in[ index ];            /* Quickly determine if this is a candidate (for speed) */            if( ptr2[ bestlength ] == ptr1[ bestlength ] )            {                /* Determine maximum length for this offset */                offset = inpos - index;                maxlength = (bytesleft < offset ? bytesleft : offset);                /* Count maximum length match at this offset */                length = _LZ_StringCompare( ptr1, ptr2, 2, maxlength );                /* Better match than any previous match? */                if( length > bestlength )                {                    bestlength = length;                    bestoffset = offset;                }            }            /* Get next possible index from jump table */            index = jumptable[ index ];        }        /* Was there a good enough match? */        if( (bestlength >= 8) ||            ((bestlength == 4) && (bestoffset <= 0x0000007f)) ||            ((bestlength == 5) && (bestoffset <= 0x00003fff)) ||            ((bestlength == 6) && (bestoffset <= 0x001fffff)) ||            ((bestlength == 7) && (bestoffset <= 0x0fffffff)) )        {            out[ outpos ++ ] = (unsigned char) marker;            outpos += _LZ_WriteVarSize( bestlength, &out[ outpos ] );            outpos += _LZ_WriteVarSize( bestoffset, &out[ outpos ] );            inpos += bestlength;            bytesleft -= bestlength;        }        else        {            /* Output single byte (or two bytes if marker byte) */            symbol = in[ inpos ++ ];            out[ outpos ++ ] = symbol;            if( symbol == marker )            {                out[ outpos ++ ] = 0;            }            -- bytesleft;        }    }    while( bytesleft > 3 );    /* Dump remaining bytes, if any */    while( inpos < insize )    {        if( in[ inpos ] == marker )        {            out[ outpos ++ ] = marker;            out[ outpos ++ ] = 0;        }        else        {            out[ outpos ++ ] = in[ inpos ];        }        ++ inpos;    }    return outpos;}/************************************************************************** LZ_Uncompress() - Uncompress a block of data using an LZ77 decoder.*  in      - Input (compressed) buffer.*  out     - Output (uncompressed) buffer. This buffer must be large*            enough to hold the uncompressed data.*  insize  - Number of input bytes.*************************************************************************/void LZ_Uncompress( unsigned char *in, unsigned char *out,    uint32_t insize ){    unsigned char marker, symbol;    uint32_t  i, inpos, outpos, length, offset;    /* Do we have anything to uncompress? */    if( insize < 1 )    {        return;    }    /* Get marker symbol from input stream */    marker = in[ 0 ];    inpos = 1;    /* Main decompression loop */    outpos = 0;    do    {        symbol = in[ inpos ++ ];        if( symbol == marker )        {            /* We had a marker byte */            if( in[ inpos ] == 0 )            {                /* It was a single occurrence of the marker byte */                out[ outpos ++ ] = marker;                ++ inpos;            }            else            {                /* Extract true length and offset */                inpos += _LZ_ReadVarSize( &length, &in[ inpos ] );                inpos += _LZ_ReadVarSize( &offset, &in[ inpos ] );                /* Copy corresponding data from history window */                for( i = 0; i < length; ++ i )                {                    out[ outpos ] = out[ outpos - offset ];                    ++ outpos;                }            }        }        else        {            /* No marker, plain copy */            out[ outpos ++ ] = symbol;        }    }    while( inpos < insize );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂2014| 国产午夜久久久久| 亚洲国产另类av| 欧美精品自拍偷拍动漫精品| 午夜精品影院在线观看| 日韩欧美中文一区| 国产精品综合二区| 亚洲免费视频成人| 欧美一个色资源| 成人一区二区三区视频| 亚洲激情第一区| 日韩欧美在线1卡| 国产99精品视频| 亚洲综合激情网| 日韩三级视频在线观看| 成人免费视频视频在线观看免费| 亚洲卡通动漫在线| 日韩三级中文字幕| 91麻豆自制传媒国产之光| 五月天视频一区| 国产色产综合产在线视频| 色婷婷综合中文久久一本| 日本vs亚洲vs韩国一区三区二区| 欧美国产日韩精品免费观看| 欧美视频中文一区二区三区在线观看 | 中文字幕一区在线观看视频| 欧美三片在线视频观看| 国产成人精品一区二| 一区二区三区久久| 国产校园另类小说区| 欧美日韩国产一级片| 粉嫩在线一区二区三区视频| 亚洲成人av一区二区三区| 久久精品在这里| 日韩一区二区免费高清| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 石原莉奈一区二区三区在线观看| 久久这里都是精品| 欧美日韩和欧美的一区二区| 成人精品国产免费网站| 毛片一区二区三区| 亚洲综合激情小说| 中文字幕中文乱码欧美一区二区| 欧美一级搡bbbb搡bbbb| 91福利国产成人精品照片| 国产精品一二三在| 日韩avvvv在线播放| 亚洲精品视频在线观看免费| 国产色综合久久| 久久只精品国产| 欧美mv日韩mv| 欧美高清一级片在线| 91福利国产精品| 91色视频在线| 99视频超级精品| 国产91在线看| 韩国三级电影一区二区| 日韩av电影免费观看高清完整版| 亚洲永久免费av| 亚洲精品视频自拍| 亚洲黄色性网站| 亚洲欧美日本韩国| 国产精品沙发午睡系列990531| 欧美精品一区二区三区在线| 日韩免费高清视频| 日韩午夜中文字幕| 欧美肥妇毛茸茸| 欧美精品丝袜中出| 欧美视频三区在线播放| 欧美在线|欧美| 欧美日韩精品一区二区| 欧美四级电影在线观看| 欧美性大战久久久| 欧美日韩大陆在线| 欧美日韩一级大片网址| 欧美日韩在线免费视频| 欧美老肥妇做.爰bbww视频| 欧美午夜精品免费| 欧美亚洲一区二区在线| 欧美视频一区二区三区在线观看 | 成人综合在线观看| 成人白浆超碰人人人人| 波多野结衣在线aⅴ中文字幕不卡| 风间由美中文字幕在线看视频国产欧美| 国产专区综合网| 成人一区在线看| 色综合久久久久综合体桃花网| 91老司机福利 在线| 欧美性猛交xxxx黑人交| 亚洲自拍都市欧美小说| 秋霞午夜鲁丝一区二区老狼| 韩国女主播一区| av激情综合网| 欧美三级视频在线观看| 欧美一区二区三区视频免费播放| 日韩美女视频在线| 日本一二三不卡| 亚洲乱码日产精品bd| 午夜久久久久久久久久一区二区| 秋霞电影一区二区| 国产91丝袜在线18| 91黄色激情网站| 日韩欧美国产系列| 亚洲视频一区二区在线观看| 亚洲成av人影院| 久久99精品久久久| 成人国产免费视频| 欧美精品第1页| 亚洲国产精品99久久久久久久久| 亚洲视频一区二区在线观看| 日日欢夜夜爽一区| 本田岬高潮一区二区三区| 欧美三级一区二区| 欧美激情一区二区三区四区| 亚洲国产精品久久人人爱| 极品美女销魂一区二区三区| 在线亚洲人成电影网站色www| 日韩欧美一区二区视频| 亚洲乱码国产乱码精品精的特点| 日本sm残虐另类| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美高清一级片在线| 亚洲欧洲精品成人久久奇米网| 蜜臀av一区二区三区| 色综合欧美在线视频区| 久久久久成人黄色影片| 亚洲国产精品久久一线不卡| 成人av网在线| 精品粉嫩超白一线天av| 亚洲国产日产av| 99久久综合国产精品| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品一区二区男女羞羞无遮挡| 欧洲中文字幕精品| 欧美激情一区二区三区全黄| 日韩中文字幕不卡| 色狠狠综合天天综合综合| 久久久久久久综合狠狠综合| 丝袜美腿高跟呻吟高潮一区| 91伊人久久大香线蕉| 国产日韩欧美高清| 国精产品一区一区三区mba桃花 | 日韩欧美的一区| 亚洲国产综合色| 91免费观看视频在线| 久久精品免视看| 精品一区二区三区日韩| 91麻豆精品国产91久久久资源速度 | 久久电影网站中文字幕 | 色婷婷精品久久二区二区蜜臂av| 久久精品人人做人人爽人人| 久久电影国产免费久久电影| 91精品国产综合久久久蜜臀图片| 亚洲精品国产成人久久av盗摄| 成人免费高清视频| 中文一区在线播放| 国产成人亚洲综合a∨婷婷图片| 欧美成人精品1314www| 免费看日韩a级影片| 91精品国产色综合久久ai换脸| 亚洲精品久久久久久国产精华液 | 欧美亚洲综合网| 亚洲一区二区欧美日韩| 色琪琪一区二区三区亚洲区| 亚洲人被黑人高潮完整版| 91在线看国产| 亚洲欧美日韩中文字幕一区二区三区 | 成人免费三级在线| 国产精品二三区| 色偷偷成人一区二区三区91 | www国产成人免费观看视频 深夜成人网| 肉色丝袜一区二区| 日韩精品一区二区三区中文不卡 | 色婷婷综合在线| 亚洲一区二区三区美女| 欧美日韩国产在线观看| 日韩av电影免费观看高清完整版 | 69久久夜色精品国产69蝌蚪网| 午夜私人影院久久久久| 91精品国产乱| 国产在线精品一区二区| 国产精品久久久久久久浪潮网站| 99久久国产综合精品色伊 | 裸体在线国模精品偷拍| 久久久午夜精品理论片中文字幕| 国产成人综合自拍| 亚洲欧洲精品一区二区精品久久久| 91久久精品一区二区三区| 五月天中文字幕一区二区| 精品少妇一区二区三区| 懂色av一区二区夜夜嗨| 亚洲综合色在线| 精品国产成人系列| 91日韩在线专区| 麻豆精品视频在线| 国产精品久久久久影院老司| 在线观看中文字幕不卡| 激情成人综合网| 亚洲裸体在线观看| 精品国产露脸精彩对白|