编程语言
首页 > 编程语言> > 《程序是怎样跑起来的》第六章

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

作者:互联网

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

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

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

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

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

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

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

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

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

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

标签:编码,哈夫曼,可逆,压缩,程序,算法,第六章,压缩率,怎样
来源: https://www.cnblogs.com/Max-007/p/10597329.html