读《程序是怎么跑起来的》第六章有感

      第六章亲自尝试压缩数据,知道了文件是字节数据的集合体,LZH是用LHA等工具压缩过的扩展名,例如AAABB这个数据压缩后就是A3B2,半角英文数字是用1个字节来表示的,汉字等全角字符是用两个字节来表示的,知道了压缩后数据能复原的就是可逆压缩,不能复原的就是非可逆压缩。

      文件是以字节(B=Byte)为单位来储存的,文件就是字节数据的集合,RLE的算法机制,简称为把文件内容用“数据×重复次数的形式”来表示的压缩方法。但是RLE的算法也有缺点,在实际的文本文件中,同样字符多次出现的文件并不多见,要知道RLE不适合文本文件的压缩,然后在了解哈弗曼算法之前要抛弃掉之前“半角英文数字的1个字符是1个字节的数据”这一概念。文本文件是由不同类型的字符组合而成的,而不同的字符出现的次数也是不同的。还要知道磁盘是以字节为单位来保存数据的。之前认为的“莫尔斯编码的短点是0,长点是1,其中1个字符用8为来表示”,这是一种不成熟的做法,实际上根据字符种类的不同,莫尔斯电码符号的长度也有不同。

       哈夫曼算法是指,为各压缩对象文件,分别构造最佳的编码体系,并以该编码体系为基础进行压缩,但是该程序要比RLE算法要复杂的多。但是该算法能大幅度提升压缩比例。最后的可逆压缩和非可逆压缩也不难理解,在文章的开始已经解释过了。

posted on 2019-02-10 11:28  羊毛儿  阅读(85)  评论(0编辑  收藏  举报