首页 > 其他分享 >C语言等长编码压缩和哈夫曼编码压缩

C语言等长编码压缩和哈夫曼编码压缩

时间:2022-08-15 23:55:18浏览次数:82  
标签:编码 哈夫曼 文件 压缩 C语言 字符

C语言等长编码压缩和哈夫曼编码压缩

利用哈夫曼算法对文件进行压缩及解压缩

题目:

选择一个英文纯文本文档(不少于3千字,也可以更多),分别利用等长编码和哈夫曼编码对其进行压缩,计算压缩比,并解压缩。

提交材料:

1.源代码;
2.测试数据源文件;
3.压缩后得到的压缩文件;
4.执行界面截屏;
5.实验报告。

注意事项:

1.学习通上提交;
2.截止到开学前。

等长编码压缩原理

文件是由字符构成的。ASCII字符集中大约包含了100个可打印字符,为了区分它们,需要[log,1007]=7位的二进制串表示,而7位串共
能表示2'=128个字符,所以ASCII字符集又增加了一些非打印字符。也就是说,如果字符集包含C个字符,则在标准的等长编码中,每个字符由一个[ log,C]位的二进制串表示。
假设有一个文件仅包含7个字符:a, e i ,s ,t, sp(空格)和nl(换行),且文件中有10个a, 15个e,12个i,3个s,4个t,13个sp,1个nl。因为「 log,7]=3,所以,每个字符都至少由一个3位的二进制串表示。于是文件的总位数至少为
10×3+15×3+12×3+3×3+4×3+13×3+1×3 =174
在实际应用的一些大文件中,字符被使用的比率是非平均的,即有些字符出现的次数多,而有些字符出现的次数却非常少。例如,在一般的大型数据文件中,通常含有大量的数字、空格和换行,但是某些字符(如q,x)却很少出现。如果所有字符都由等长的二进制码表示,那么将造成空间浪费。

源码下载

链接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取码:1111

标签:编码,哈夫曼,文件,压缩,C语言,字符
From: https://www.cnblogs.com/codewriter/p/16590134.html

相关文章

  • MySQL字段类型、字符编码与配置文件
    目录字符编码与配置文件存储引擎创建表的完整语法字段类型之整形字段类型之浮点型字段类型之字符类型字段后面的含义字段类型之枚举和集合字段类型之日期类型字段约束条件......
  • 【MySQL】第2回 字符编码和字段类型
    目录1.字符编码与配置文件1.1\S1.2my.ini2.数据库存储引擎2.1定义2.2需要掌握的存储引擎2.3不同存储引擎之间底层文件的区别3.创建表的完整语法4.MySQL字段类型4.......
  • 字符编码和配置文件、存储引擎、创建表的完整语法、字段类型
    目录字符编码和配置文件一、前提二、添加字符编码相关配置存储引擎一、介绍二、需要掌握的存储引擎1.MyISAM2.InnoDB3.Memory4.BlackHole三、不同存储引擎之间底层文件的区......
  • 数据库2/字符编码/配置文件/字段类型/约束条件
    mysql基础2字符编码与配置文件存储引擎创建表的完整语法字段类型之整型字段类型之浮点型字段类型之字符型数字的含义字段类型与枚举集合字段类型之日期类型字段......
  • 字符编码与配置文件、数据库存储引擎、创建表的完整语法、MySQL字段类型(整型、浮点型
    字符编码与配置文件可以用:\s来查看数据库基本信息,里面含有用户、字符编码等信息。Servercharacterset:latin1Dbcharacterset:latin1Clientcharacter......
  • 1078 字符串压缩与解压——20分
    文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如ccccc就用5c来表示。如果字符没......
  • C++ 特殊矩阵的压缩存储算法
    1.前言什么是特殊矩阵?C++,一般使用二维数组存储矩阵数据。在实际存储时,会发现矩阵中有许多值相同的数据或有许多零数据,且分布呈现出一定的规律,称这类型的矩阵为特殊矩阵......
  • 字符串p型编码
    题目描述给定一个完全由数字字符(‘0’,‘1’,‘2’,…,‘9’)构成的字符串str,请写出str的p型编码串。例如:字符串122344111可被描述为"1个1、2个2、1个3、2个4、3个1",因此......
  • Qt基于QuaZIP在Win下实现文件的压缩/解压
    简介QuaZip是使用QT/C++对ZLIB进行封装,且用于压缩及解压缩ZIP的开源库,今天就来介绍如何在Win下使用该开源库。Qt中是提供了qCompress/qUncompress来进行文件的压缩和解压......
  • 【组成原理-数据】定点数的编码与运算
    目录1定点数的编码1.1编码的种类1.2编码的转换1.3C语言的强制转换2定点数的运算2.1定点数的移位2.1.1算术移位(有符号数)2.1.2逻辑移位(无符号数)2.1.3循环移位2.2......