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

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

时间:2024-02-24 23:00:35浏览次数:26  
标签:读后感 编码 字节 文件 压缩 程序 算法 第六章 数据

本章讲述的是如何压缩数据。文件压缩在发送邮件和转发文件时经常用到,或者是照片保存在计算机上时,也会压缩成JPEG格式,而文件的压缩机制是基础,也是必须掌握的知识。
首先,文件是数据存储在存储媒介中的一种形式。也就是说,无数数据存储在磁盘、内存等存储位置时的形式就形成了文件。而文件中这些数据的单位就是字节,在我们接触网络中应用程序或者文件时,xxMB,xxKB表示的内存大小,就是很多字节(Byte)组成的。用8位1字节表示的数据有256种,用二进制来表示范围就是00000000~11111111,重点是,文件中的字节数据都是连续储存的。
书中讲到一个算法,叫RLE算法(Run Length Encoding)。RLE是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用。例如,图片的压缩格式JPEG就使用它。简单来说就是数据×重复次数来压缩字节从而压缩文件大小,如下图。

但是这种算法并不适合文本文件的压缩,因为文本文件中同样字符连续出现的部分并没有多少,总不至于一个文本文件全篇同样的词语连续出现多次吧。在使用RLE算法机制压缩文本时在每个字符后都会加上重复的次数,压缩后可能还会比之前的大,但是也可以避免,不以1个字节为单位查找重复次数,但是这样貌似就失去了这种算法的简单性的特点了。
书中讲到的第二种压缩方法叫哈曼夫算法,用到一种叫莫尔斯编码的东西,这种编码我们在电影里都有看到过,又叫摩斯电码,用长点短点的组合来传递信息,这种算法的最大特点就是多次出现的数据用小于8位的字节数来表示,不常用的数据可以用超过8位的字节数来表示,这种算法的特点就在于灵活。
莫尔斯编码也不是所有情况都适用,所以书中还讲到一种是使用二叉树构造编码体系,如图。

我的理解是,就类似于数学中的统计,根据数据出现的频率,再进行组合,最后形成一串哈曼夫编码,这种方法可以大大提高压缩比率。
书中还讲到两个概念,可逆压缩和非可逆压缩,顾名思义,可逆压缩是指压缩前后的文件数据没有丢失,非可逆压缩反之。
这就是我在第六章中学到的知识。

标签:读后感,编码,字节,文件,压缩,程序,算法,第六章,数据
From: https://www.cnblogs.com/xylxyl/p/18031784

相关文章

  • 程序是怎么跑起来的第七章
    通过本章的学习,我们了解到程序在环境中的运行交往虚拟机的功能就是运行JAVA应用的字体代码不同的硬件种类需要不同的操作系统例如freeSD是一种操作系统运行环境等于操作系统加硬件操作系统和硬件决定了程序的运行环境,例如同样的ad兼容机中既可以安装Windows,也可以安装Linux等操作......
  • 程序是怎么跑起来的第六章
    第六章讲了压缩数据压缩文件的拓展名是lzhBmp格式的图像文件是没有压缩过的文件内容用数据的值乘以循环次数来表示压缩方法的是rle算法,这种算法可以压缩文件的内存大小例如ab这个数据压缩后就是A3,b2像照片jpeg格式这样之后经过压缩也不会让人感到不自然,因为照相jpg格式具有非可逆......
  • 读后感_第十一章
    该章讲述了一些关于硬件与应用之间的内容,首先讲述了硬件与软件之间的关系,windons连接应用与硬件。应用通过调用API来连接操作系统,通过指令来控制硬件,IN指令起存储作用,OUT起输出作用,计算机周围有多个端口,一个控制器可以控制多个外围,通过制定该端口号,利用命令,实现输入输出,汇编语言编......
  • 《程序是怎样跑起来的》第七章第八章观后感
    阅读第七章“程序是在何种环境中运行的”之后,我对程序的运行环境有了更深入的理解和体会。这一章节详细介绍了程序运行的环境以及与之相关的概念和技术,让我对程序的生命周期有了更清晰的认识程序的运行环境可以分为硬件环境和软件环境两个方面。硬件环境包括计算机的处理器、内存......
  • 系统科学方法概论绪论读后感
    《系统科学方法概论》的绪论引入了系统科学方法,简单介绍了什么是系统科学、系统科学产生的社会历史条件和系统科学的方法论功能在什么是系统科学中介绍了系统科学的内容与特征,,其中又分为四部分,第一部分介绍了系统科学是以系统为研究对象的学科群。系统科学,即以系统为研究对象的科......
  • 第一章读后感
    《系统科学方法概论》这本书,第一章“系统方法”,其独特的视角和丰富的见解让我对系统科学有了更深入的了解和认识。第一章首先介绍了系统科学的概念,网上给出的答案是系统科学方法论为我们提供了一个清晰的视角。一个系统,简单来说,就是一组相互关联、相互作用的元素。这些元素之间存......
  • 程序是怎么跑起来的读后感8
    《程序是怎样跑起来的》第八章读后感阅读完《程序是怎样跑起来的》第八章后,我对程序的编译和链接过程有了更为深刻的理解。这一章详细描述了从源代码到可执行文件的转变过程,让我对编程的底层机制有了更加直观的认识。我被预处理这一步骤深深吸引。在源代码阶段,程序可能包含了一......
  • 《程序是怎么跑起来的第三章》
    《程序是怎样跑起来的》这本书的第三章主要是探讨计算机运算小数时可能出现的问题以及相应的解决方案。在这一章节中,作者提出了一个问题:为什么计算机运算小数会出错?答案是因为有些十进制小数无法用二进制准确表示,这可能导致程序运行结果与预期存在偏差。为了解决这个问题,作者介......
  • 程序是怎样跑起来的读后感9
    《程序是怎样跑起来的》第九章读后感《程序是怎样跑起来的》第九章深入探讨了程序的执行过程,即程序在内存中如何被加载、如何运行以及如何与硬件设备进行交互。读完这一章,我对程序的执行过程有了更加清晰和深入的认识。我被程序的加载过程所吸引。当程序开始执行时,操作系统会将......
  • 《程序是怎样跑起来的》——第十章读后感
    一:1.在用于x86架构CPU的汇编语言中,用in指令进行I/O输入,用out指令进行I/O输出。2.负责在计算机主机与外部设备之间进行输入输出的芯片称为1/O控制器,简称I/O。3.为了区分连接到计算机上的不同外部设备,每个设备会被分配一个I/O地址。4.IRQ是指用于区分发出中断请求的外部......