莫尔斯

程序员需要了解的硬核知识之压缩算法

﹥>﹥吖頭↗ 提交于 2019-12-03 17:08:21
此篇文章是《程序员需要了解的硬核知识》第五篇文章,历史文章请戳 程序员需要了解的硬核知识之内存 程序员需要了解的硬核知识之CPU 程序员需要了解的硬核知识之二进制 程序员需要了解的硬核知识之磁盘 之前的文章更多的介绍了计算机的硬件知识,会有一些难度,本篇文章的门槛会低一些,一起来看一下计算机中都有哪些 压缩算法 认识压缩算法 我们想必都有过 压缩 和 解压缩 文件的经历,当文件太大时,我们会使用文件压缩来降低文件的占用空间。比如微信上传文件的限制是100 MB,我这里有个文件夹无法上传,但是我解压完成后的文件一定会小于 100 MB,那么我的文件就可以上传了。 此外,我们把相机拍完的照片保存到计算机上的时候,也会使用压缩算法进行文件压缩,文件压缩的格式一般是 JPEG 。 那么什么是压缩算法呢?压缩算法又是怎么定义的呢?在认识算法之前我们需要先了解一下文件是如何存储的 文件存储 文件是将数据存储在磁盘等存储媒介的一种形式。程序文件中最基本的存储数据单位是 字节 。文件的大小不管是 xxxKB、xxxMB等来表示,就是因为文件是以字节 B = Byte 为单位来存储的。 文件就是字节数据的集合。用 1 字节(8 位)表示的字节数据有 256 种,用二进制表示的话就是 0000 0000 - 1111 1111 。如果文件中存储的数据是文字,那么该文件就是文本文件。如果是图形