Java小程序之哈夫曼树与文件压缩和解压缩(二)文件压缩篇


 Java小程序之哈夫曼树与文件压缩和解压缩(二)文件压缩篇

一、初识压缩与解压缩原理

压缩可以理解为:对文件的加密过程

解压可以理解为:对文件的解密过程

例如:

 - a

 -  b

 -  c

我是谁   -》  abc


二、压缩原理详解
我们都知道,计算机只能存储二进制数据,即计算机中存储的都是0和1;那么我们看的的a、b、c等英文字母和汉字在计算机中使怎么存储的呢?
这就涉及到了编码的问题了,英文用的编码是ASCII,即利用一个字节(8位,也就是8个0和1 组成的01串)来表示各种英文字母以及符号,例如a字母在ASCII编码中是97(十进制),在计算机中的存储是:01100001;所以一个英文字母或者符号只占一个字节;因为汉字众多,远远不止256个,所以汉字的编码需要用两个字节来编码,总共可编码2*16个汉字;所以一个汉字一半占两个字节;常用的汉字编码有UTF-8和GBK等;

现在比如在一个文件中存储有abaabc;那么计算机中存储的应该是01100001(a) 01100010 (b)01100001(a)01100001(a)01100010 (b)01100011 (c),一共占6个字节;如何利用哈夫曼树将这个文件进行压缩呢?构造哈夫曼树,首先的有权值,那么拿什么东西作为权值呢?
  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值