首页 > 其他分享 >第六章

第六章

时间:2024-02-29 18:59:10浏览次数:17  
标签:文件 字节 哈夫曼 压缩 算法 第六章 数据

尝试压缩数据
1.文件以字节为单位保存
文件是将数据存储在磁盘等存储媒介中的一种形式。程序文件中存储数据的单位是字节。 文件的大小之所以用xxKB、xxMB等来表示,就是因为文件是以字节(B=Byte) 为单位来存储的。文件就是字节数据的集合。用1字节 (=8位)表示的字节数据有256种,用二进制数来表示的话,其范围就是 00000000~11111111。如果文件中存储的数据是文字, 那么该文件就是文本文件。如果是图形,那么该文件就是图像文件。在任何情况下, 文件中的字节数据都是连续存储的,大家一定要认识到这 一点。
2.压缩技巧实际上有很多种。接下来, 我们就来看一下本章要介绍的第二个压缩技巧,即哈夫曼算法。 哈夫曼算法是哈夫曼于1952年提出来的压缩算法。 日本人比较常用的压缩软件LHA",使用的就是哈夫曼算法。为了更好地理解哈夫曼算法,首先大家要抛弃掉 “半角英文数字的1个字符是1个字节(8位)的数据”这一概念。 文本文件是由不同类型的字符组合而成的, 而且不同的字符出现的次数也是不同的。例如,在某一个文本文件中,A出现了100次左右, Q仅用到了3次,类似这样的情况是很常见的。 而哈夫曼算法的关键就在于“多次出现的数据用小于8位的字节数来表示, 不常用的数据则可以用超过8位的字节数来表示”。A和Q都用8位来表示时, 原文件的大小就是100次x8位+3次x8位=824位, 而假设A用2位、Q用10位来表示,压缩后的大小就是100次x2位+3次 x10位=230位。不过有一点需要注意,不管是不满8位的数据, 还是超过8位的数据,最终都要以8位为单位保存到文件中。 这是因为磁盘是以字节(8位)为单位来保存数据的(图6-3)。 为了实现这一处理,压缩程序的内容会复杂很多,不过作为回报, 最终得到的压缩率也是相当高的。
3.可逆压缩与非可逆压缩
图像文件还可以使用与前文介绍的RLE算法 、哈夫曼算法不同的其他压缩算法。这是因为,多数情况下, 并不要求压缩后的图像文件必须还原到与压缩前同等的质量。与之相比, 程序的EXE文件以及每个字符、 数值都有具体含义的文本文件则必须要还原到和压缩前同样的内容。而对于图像文件来说, 即使有时无法还原到压缩前那样鲜明的图像状态,但只要肉眼看不出什么区别, 有一些模糊也勉强可以接受。这里,我们把能还原到压缩前状态的压缩称为可逆压缩,无法还原到压缩前状态的压缩称为非可逆压缩。

标签:文件,字节,哈夫曼,压缩,算法,第六章,数据
From: https://www.cnblogs.com/caoqing040212/p/18045123

相关文章

  • 读后感_第六章
    第六章主要介绍了有关数据压缩内容,在这一章中,我了解了数据压缩的基本概念和原理,一章中,我了解了RLE压缩算法的基本概念和原理,包括重复字符串的表示、压缩和解压缩的过程等。我学习了如何使用RLE压缩算法来压缩数据,以及如何在实际应用中选择合适的压缩算法。此外,我还了解了RLE......
  • 《程序是怎样跑起来的》第六章读后感
    第六章为自己动手压缩数据,当我看到这个题目时,自己动手,自己该怎么压缩,通常都是压缩成压缩包,但是这个很显然不是这个压缩,因为这个压缩并不是让你通过电脑去压缩,而是真正通过自己去压缩,上一章讲述了硬盘是怎样存储数据,而在文件中存储数据依然是存到硬盘中,基本单位依然是字节,压缩数据......
  • 《程序是怎样跑起来的》第六章读书笔记
    读完第六章后,我对算法和算法的效率有了更深入的理解。这一章详细介绍了算法的概念、分析方法以及常见的算法设计策略。我明白了算法不仅仅是解决问题的步骤,还需要考虑时间和空间复杂度。通过对不同算法的分析比较,我了解到了一些优化算法效率的方法,例如选择合适的数据结构、减少不......
  • 《程序是怎样跑起来的》第六章理解
    在计算机中,文件通常是以字节为单位存储的。一个字节由8位组成,是计算机存储和传输数据的基本单位。在保存文件时,操作系统或文件管理系统会将文件内容划分为一系列字节,并将这些字节存储在磁盘或其他存储介质上。每个字节都可以独立地存储和访问。RLE是一种简单的无损数据压缩算法。......
  • 《大道至简》第六章读书笔记
    《大道至简》第六章深入探讨了软件工程实践者在追求简洁和高效的同时,如何保持和提升自身技术能力的思想。通过阅读这一章,我进一步认识到在软件工程领域,持续学习和技术提升是非常重要的。作者指出,软件工程实践者应当保持对新技术和新工具的持续学习和掌握,不断提升自己的技术能力和......
  • 《程序是怎样跑起来的》第六章读后感
    《程序是怎样跑起来的》这本书的第六章主要围绕数据压缩的主题展开。在这一章节中,作者深入浅出地介绍了数据压缩的基本原理和实际应用,使我们能够更好地理解这项技术及其背后的智慧。这一章节的重点内容包括压缩原理、RLE(运行长度编码)算法的优缺点以及哈夫曼算法。此外,本章还介绍......
  • 程序是怎样跑起来的》第六章——亲自尝试压缩数据
    在本章中,作者引导我们进入数据压缩的世界,展示了如何通过程序实现数据的压缩。这一章首先介绍了数据压缩的基本概念,以及为什么我们需要进行数据压缩。当文件太大无法放入软盘保存时,或将大附件添加到电子邮箱时,我们就需要采用压缩文件的方法。在数据爆炸的时代,无论是存储还是传输......
  • 程序是怎么跑起来的第六章观后感
    第六章的内容主要围绕文件的压缩展开。文件是将数据存储在磁盘等存储媒介中的一种形式,程序文件中存储数据的单位是字节。文件的大小之所以用××知识库、××兆字节等来表示,就是因为文件是以字节(B=字节)为单位来存储的。文件就是字节数据的集合。用1字节(=8位)表示的字节数......
  • 《程序是怎样跑起来的》第六章
    读书笔记:6.1:在文件中存储数据的基本单位是1字节(8比特);zip表示压缩文件;zip是Windows标准支持的压缩文件扩展名。半角英文、数字和符号都是用1字节表示的,汉字等全角字符用2字节表示。.BMP格式的图片文件是没有经过压缩的,因此比PNG等压缩格式的图片文件要大。文件是字节数据的集......
  • 《程序是怎么跑起来的第六章》
    《程序是怎样跑起来的》第六章主要讲述的是关于数据压缩的内容。在这一章中,作者首先介绍了文件是以字节为单位存储在计算机中的,并详细讲解了压缩的一种方式——游程编码,也就是将连续重复的数据转换成“数据*重复次数”的形式。接下来,作者进一步阐述了RLE算法的机制及其局限性,这种......