• 大小: 1.36MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-29
  • 语言: C/C++
  • 标签:

资源简介

主要是实现了LZ77算法的代码,并且将lz77算法相关的文档和演示图片一并上传,供大家研究和学习。

资源截图

代码片段和文件信息

//////////////////////////////   
// LZ77.CPP   
//////////////////////////////   
   
#include    
#include    
#include    
#include    
   
#include “lz77.h“   
   
/////////////////////////////////////////////////////////   
// 取log2(n)的upper_bound   
int CCompress::UpperLog2(int n)   
{   
    int i = 0;   
    if (n > 0)   
    {   
        int m = 1;   
        while(1)   
        {   
            if (m >= n)   
                return i;   
            m <<= 1;   
            i++;   
        }   
    }   
    else    
        return -1;   
}   
// UpperLog2   
/////////////////////////////////////////////////////////   
   
/////////////////////////////////////////////////////////   
// 取log2(n)的lower_bound   
int CCompress::LowerLog2(int n)   
{   
    int i = 0;   
    if (n > 0)   
    {   
        int m = 1;   
        while(1)   
        {   
            if (m == n)   
                return i;   
            if (m > n)   
                return i - 1;   
            m <<= 1;   
            i++;   
        }   
    }   
    else    
        return -1;   
}   
// LowerLog2   
/////////////////////////////////////////////////////////   
   
////////////////////////////////////////////////////////////   
// 将位指针*piByte(字节偏移) *piBit(字节内位偏移)后移num位   
void CCompress::MovePos(int* piByte int* piBit int num)   
{   
    num += (*piBit);   
    (*piByte) += num / 8;   
    (*piBit) = num % 8;   
}   
// MovePos   
////////////////////////////////////////////////////////////   
   
////////////////////////////////////////////////////////////   
// 得到字节byte第pos位的值   
//      pos顺序为高位起从0记数(左起)   
BYTE CCompress::GetBit(BYTE byte int pos)   
{   
    int j = 1;   
    j <<= 7 - pos;   
    if (byte & j)   
        return 1;   
    else    
        return 0;   
}   
// GetBit   
/////////////////////////////////////////////////////////////   
   
/////////////////////////////////////////////////////////////   
// 设置byte的第iBit位为aBit   
//      iBit顺序为高位起从0记数(左起)   
void CCompress::SetBit(BYTE* byte int iBit BYTE aBit)   
{   
    if (aBit)   
        (*byte) |= (1 << (7 - iBit));   
    else   
        (*byte) &= ~(1 << (7 - iBit));   
}   
// SetBit   
//////////////////////////////////////////////////////////////   
   
//////////////////////////////////////////////////////////////   
// 将DWORD值从高位字节到低位字节排列   
void CCompress::InvertDWord(DWORD* pDW)   
{   
    union UDWORD{ DWORD dw; BYTE b[4]; };   
    UDWORD* pUDW = (UDWORD*)pDW;   
    BYTE b;   
    b = pUDW->b[0];  pUDW->b[0] = pUDW->b[3]; pUDW->b[3] = b;   
    b = pUDW->b[1];  pUDW->b[1] = pUDW->b[2]; pUDW->b[2] = b;   
}   
// InvertDWord   
//////////////////////////////////////////////////////////////   
   
////////////////////////////////////////////////////////   
// CopyBits : 复制内存中的位流   
//      memDest - 目标数据区   
//      nDe

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         13  2012-08-16 18:44  lz77\compress.txt

     文件      33063  2009-04-23 17:05  lz77\Debug\Lz77.obj

     文件     204884  2009-04-23 17:54  lz77\Debug\lz77temp.exe

     文件     223756  2009-04-23 17:54  lz77\Debug\lz77temp.ilk

     文件    3567212  2009-04-23 17:05  lz77\Debug\lz77temp.pch

     文件     525312  2009-04-23 17:54  lz77\Debug\lz77temp.pdb

     文件      17220  2009-04-23 17:54  lz77\Debug\main.obj

     文件     148480  2009-04-23 17:54  lz77\Debug\vc60.idb

     文件      77824  2009-04-23 17:54  lz77\Debug\vc60.pdb

     文件         11  2012-08-16 18:44  lz77\decompress.txt

     文件         11  2009-04-23 17:50  lz77\input.txt

     文件      15293  2009-04-23 16:59  lz77\Lz77.cpp

     文件       5070  2009-04-23 16:58  lz77\Lz77.h

     文件       4424  2009-04-23 17:56  lz77\lz77temp.dsp

     文件        524  2009-04-23 16:51  lz77\lz77temp.dsw

     文件     204884  2009-04-23 17:54  lz77\lz77temp.exe

     文件      41984  2009-04-23 17:56  lz77\lz77temp.ncb

     文件      49664  2009-04-23 17:56  lz77\lz77temp.opt

     文件       1317  2009-04-23 17:54  lz77\lz77temp.plg

     文件     161280  2012-08-16 18:44  lz77\LZ77压缩算法详解.doc

     文件      43101  2012-08-23 17:17  lz77\LZ77算法的基本原理.docx

    I.A....     75779  2012-08-23 14:11  lz77\LZ77编码算法图解.pdf

     文件       4671  2009-04-23 17:56  lz77\main.cpp

     文件         85  2009-04-23 17:55  lz77\说明.txt

     目录          0  2009-04-23 18:31  lz77\Debug

     目录          0  2012-11-06 09:18  lz77

----------- ---------  ---------- -----  ----

              5405862                    26


评论

共有 条评论

相关资源