数据快速压缩算法研究以及C语言实现.docVIP

数据快速压缩算法研究以及C语言实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据快速压缩算法研究以及C语言实现

数据快速压缩算法研究以及C语言实现   摘要: 压缩算法有很多种,但是对需要压缩到一定长度的简单的报文进行处理时,现有的算法不仅达不到目的,并且变得复杂,本文针对目前一些企业的需要 ,实现了对简单报文的压缩加密,此算法不仅可以快速对几十上百位的数据进行压缩,而且通过不断的优化,解决了由于各种情况引发的解密错误,在解密的过程中不会出现任何差错。   Abstract: Although, there are many kinds of compression algorithm, the need for encryption and compression of a length of a simple message processing, the existing algorithm is not only counterproductive, but also complicated. To some enterprises need, this paper realizes the simple message of compression and encryption. This algorithm can not only fast for tens of hundreds of data compression, but also, solve the various conditions triggered by decryption errors through continuous optimization; therefore, the decryption process does not appear in any error.   关键词: 压缩;解压缩;数字字符;简单报文   Key words: compression;decompression;encryption;message   中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2012)35-0192-02   0 引言   现有的压缩算法有很多种,但是都存在一定的局限性,比如:LZw[1]。主要是针对数据量较大的图像之类的进行压缩,不适合对简单报文的压缩。比如说,传输中有长度限制的数据,而实际传输的数据大于限制传输的数据长度,总体数据长度在100字节左右,此时使用一些流行算法反而达不到压缩的目的,甚至增大数据的长度。本文假设该批数据为纯数字数据,实现压缩并解压缩算法。   1 数据压缩概念   数据压缩是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。常用的压缩方式[2,3]有统计编码、预测编码、变换编码和混合编码等。统计编码包含哈夫曼编码、算术编码、游程编码、字典编码等。   2 常见几种压缩算法的比较   2.1 霍夫曼编码压缩[4]:也是一种常用的压缩方法。其基本原理是频繁使用的数据用较短的代码代替,很少使用的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。   2.2 LZW压缩方法[5,6]:LZW压缩技术比其它大多数压缩技术都复杂, 压缩效率也较高。其基本原理是把每一个第一次出现的字符串用一个数值来编码,在还原程序中再将这个数值还成原来的字符串,如用数值0x100代替字符串ccddeee这样每当出现该字符串时,都用0x100代替,起到了压缩的作用。   3 简单报文数据压缩算法及实现   3.1 算法的基本思想 数字0-9在内存中占用的位最大为4bit,而一个字节有8个bit,显然一个字节至少可以保存两个数字,而一个字符型的数字在内存中是占用一个字节的,那么就可以实现2:1的压缩,压缩算法有几种,比如,一个自己的高四位保存一个数字,低四位保存另外一个数字,或者,一组数字字符可以转换为一个n字节的数值。N为C语言某种数值类型的所占的字节长度,本文讨论后一种算法的实现。   3.2 算法步骤   ①确定一种C语言的数值类型。   #define LONG short #define NUM 2 union un /* 用来保存数据 */   ②确定该数据类型最大保存的数字长度。   比如:short是2字节,即 2的15次方,推算出,最大可以保存字符99999可以推算出#define MAX_LEN 5,最多可以对5个数字字符进行换算成short。   ③编写基本函数。   字符转换为数值,数值转换为字符 ,单元压缩 ,单元解压缩函数。   ④实现数字字符串压缩解压缩。   对任意长度的数字字符串进行从左到右每五个

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档