⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 一个基于lZW压缩算法的高效实现
💻 CPP
字号:
#include "zipex.h"

void main()
{
	unsigned char * a1,*b1,*c1;
	long len1,len2,len3;  //len1 --- 压缩前源数据流的长度
                          //len2 --- 压缩后数据流的长度
	                      //len3 --- 解压后数据流的长度

	double rat;
	
/*  //模拟 4k 数据流
	len1=4096; 
	a1=(unsigned char *)malloc(len1);  
	memset(a1,2,len1);*/

	for(int i=0;i<200;i++)
	{
    //模拟 2.7M 数据流
    len1=2119400; 
	a1=(unsigned char *)malloc(len1);  
	memset(a1,i,len1);

	printf("**************************************************\n\n");
//	printf("data stream before compressing is: \n\n%s\n\n",a1);
	printf("The number is %d  \n\n",i);
    printf("The size of data before compressing is %d  bytes\n\n",len1);
		
	len2=compress( a1,len1);    //压缩数据流,压缩后的数据流在a1中,长度是len1

	printf("**************************************************\n\n");	
//	printf("data stream after compressing is: \n\n%s\n\n",a1);
    printf("The size of data after compressing is %d  bytes\n\n",len2);


   //模拟解压缩数据流过程	
	b1=(unsigned char *)malloc(len1+5);  //为解压缩缓存分配空间b1: 压缩前源数据流的长度+5 
	memcpy(b1,a1,len2);                  //将压缩数据放入b1
	len3=uncompress( b1,len2);           //解压缩数据流b1,解压缩后的数据流在b2中,长度是len3

    rat=(double)len2/len1;              //计算压缩比

	printf("**************************************************\n\n");
//	printf("data stream after uncompressing is: \n\n%s\n\n",a1);
    printf("The size of data after uncompressing is %d  bytes\n\n",len3);

	printf("**************************************************\n");	
	printf("compressed ratio is %1.4f\n\n",rat);

	free(a1); //释放a1空间
	free(b1); //释放b1空间
	}

	return;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -