码迷,mamicode.com
首页 > 其他好文 > 详细

《程序是怎样跑起来的》第六章

时间:2019-03-25 23:16:08      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:别人   使用   告诉   编码   lang   来讲   接下来   没有   一个   

第六章主要讲解了几种压缩文件的方法:RLE算法、哈弗曼编码。

首先作者告诉我们,文件是以数据的方式来进行储存的,无论是图像还是文本或是其它,这一点对于我们来说都是知道的,不知道的话真有点说不过去。

然后作者紧接着就像我们详细的讲解了RLE算法。RLE算法就是采用“字符*重复次数”来进行文件压缩的。这个很好理解,就好比别人问你你家有几个孩子,我们会很简洁明了的说:三儿子两女儿;而不会说依次的说出名字。

REL算法的缺点很大,尤其它对文本文件压缩率极低,因为文本之中重复的不会那么多;而且一个字符做一个字节那就无法很好地达到压缩效果了。

接下来作者运用不同的方法让我们理解“哈夫曼算法”。

1.     用莫尔斯编码来理解其基础。莫尔斯编码其实就是我们在电视中看到的“电报”传输信息的一种语言,用这种方法理解哈夫曼其实还行,不是那么高效。我们要摒弃“半角英文数字的1个字符是1个字节的概念”,哈夫曼会根据一个字符重复的次数来相对的改变其字节大小,但是根据储存单位来讲,还是以单位存入,只是把重复较多的展示压缩在重复较少的里边去。压缩率因此也没有很理想

2.     用二叉树实现哈夫曼编码,用二叉树衍生出哈弗曼树是理解的好方法。这不是一颗普通的树,而是倒长得树;用0,1来记述文件,八个0,1才是一个字节这就大大的提高了压缩率。

哈弗曼编码对于各种文件的压缩率都是比较高的,这个工作虽然不需要我们进行详细操作,但这本书不就是让我们好好理解计算机的软件和硬件的嘛,我们需要去知道。

接下来讲述了可逆压缩和非可逆压缩。可逆是可以压缩之后还原的,不可逆就是压缩之后不可还原的。并不是非可逆压缩无法使用,而是效果不如之前。就好像你手机接收的图片一样,有时候它显示不了原图的像素,就达不到美丽的效果是一样的。

好嘞,这一章就先说到这里,不知为何这一张读起来很“轻快”,很好理解。

《程序是怎样跑起来的》第六章

标签:别人   使用   告诉   编码   lang   来讲   接下来   没有   一个   

原文地址:https://www.cnblogs.com/Max-007/p/10597329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!