《程序是怎样跑起来的》这本书的第六章,主要探讨了文件压缩的机制和方法。读完这一章后,我对文件压缩有了更深入的理解。
我知道了简单的压缩算法——RLE(Run-Length Encoding)。在这种算法中,每个字符后面标识出现的频率,例如“A6B1C2E5F1”就是用RLE算法压缩后的结果。然而,文本文件的压缩比其他类型的文件更复杂,因为文本文件各字符出现重复的次数较少,所以使用RLE算法后的字符位数可能会比压缩前还多。
此外,我也学到了莫尔斯编码和哈夫曼编码两种不同的压缩方法。莫尔斯编码需要摒弃原有算法的机制,即不认为一个字符就是一个字节,这样才能得到较好的压缩效果。而哈夫曼编码则利用哈夫曼树来实现文件压缩,它的机制类似于数学中的树形结构,但与自然界的树相反,它是先有叶后有枝、根。
这一章还介绍了图像文件的几种数据形式,包括完全未压缩的BMP格式,以及JPEG、TIFF、GIF等常见的图像文件格式。