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

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

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

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

原文地址:https://www.cnblogs.com/qly123/p/10358951.html

时间: 2024-10-11 07:29:29

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

读大道至简第六章有感

本章的题目是从编程到过程,刚开始讲到语言只是工具,学会制作和使用工具才是最重要的,当一些编程人员天天为了用哪种语言好以及评论各种语言的优缺点,此时便会被工具所累,忘记了做工程的目的. 第二部分讲到了程序,程序=算法+结构,这是大一时期c++老师每次上课必说的一句话,这是编程的本源定义,也是原始的状态.与代码相关的任何工作,最终仍旧会落足于这样的一条规则,编程的精义于此,从有开发行为开始,他就存在了. 第三部分讲了方法,很多时候程序员拿到一个项目或者是我们拿到一个题目,不是先去阅读他找到方法,而是

再读大道至简第六章

大道之简临近了尾声,作者也开始了“与前文相呼应”,第六章的内容大部分建立在前面五章的基础之上,对相关的名词进行了进一步的阐释,理解,对有关的概念进行了扩充. 一开始说了,语言只是工具,这几乎与第一章的内容相呼应,不讲JAVA/C/C++等等语言的好坏,只是把他们放在工具的层面来说.没有对语言的膜拜也没有对语言的漠视.语言再不同,只是工具不同,适用于不同的环境.就像是犁地不需要铲子,扫地需要扫把一样的.笔者借由各种语言只是工具来引出了,那张幻灯片.看清代码.方法.工程.组织的关系. 在代码.方法.

读大道至简第四章有感

第四章题目为流于形式的沟通,顾名思义说的就是我们的沟通只是表面工作,没有深入,也就不会对工作有什么实质性的帮助.但是这个沟通值得是谁与谁之间的沟通呢,没错,就是我们与客户之间的沟通.程序员与计算机之间可以用C语言,java进行沟通但是客户不一定会这些我们也不能要求客户会这些,所以学好基本的编程语言是基础,学会与客户用汉语进行深刻的沟通,并且把这些沟通的内容转化为编程的需求.这是对一个程序员的客观要求. 然而就像书中所说,有的客户会聘用一个专家组来与程序员进行沟通,这时候专业知识就可以很好的应用,

读大道至简第三章有感

第三章的标题是 团队缺乏的不只是管理,作者以”言三人为众,虽难尽继,取其功尤高者一人继之於名为众矣.“这段<汉书>中的话来引出了团队的概念. 第一节的标题是三个人的团队,”言三人为众“团队至少是以三个人为规模的,如此便具备了团队的基本特性:主从.监督和责任.”取其功尤高者一人继之,於名为众“就是功高者代替群体受功,其意思就是功劳大的.能力强的便成了团队中的领导角色.做管理不仅要功劳大,做管理最基本的素质是要能承担责任.当项目失败后,要有乘受去.相应责任的能力. 第二节标题为”做项目=死亡游戏?

读大道至简第五章有感

该章开篇第一个部分写的是做过程不是做工程,主要介绍了软件工程的创立及成熟的标志.其成熟的标志是软件工程的瀑布模型的提出.瀑布模型将软件开发的过程分成需求,分析,设计,开发和测试等五个主要阶段.在瀑布模型之后很多人开始研究过程模型的问题.这也是很多问题出现的源头.很多人认为只要把工程按照瀑布模型做,做完过程的每一个阶段, 虽然很多模型是值得称道的例如RAD(快速应用开发)模型,螺旋模型和现在常被提及的RUP模型,但是做过程不是做工程,模型就是样子我们可以根据好的模型来确立以后要做的工程的步骤以及思

大道至简第六章

今天看了看大道至简第六章<从编程到工程>.文章以<列子·说符>的“得其精而忘其粗,在其内而忘其外:见其所见,不见其所不见,视其所视,而遗其所不视.”为题记.第一节讲了“语言只是工具”,作者讲述了他曾经对一些编程语言的看法.他曾经也热衷于讨论语言的优劣,但是他现在不这样了,他已经不再专注于语言, 正如他在第一章中写到的一样:成天讨论这门语言好,或者那门语言坏的人,甚至是可悲的.确实,程序的好坏不在于语言,在于算法.第二节 说点什么呢,今天看了看大道至简第六章<从编程到工程>

大道至简 第六章

大道至简 第六章的主题是从编程到工程:很多编程的初学者往往只专注于变成本身 也就是语言 ,然而语言只是工具,有了语言,才有之后的程序,是“程序=算法 +结构”.这是编程的本源定义,也是原始的状态.与代 码相关的任何工作,最终仍旧会落足于这样的一条规则. 编程的精义于此.从有开发行为开始,它就存在了. 愚公在数千年前就在用类同的行为做编程实践,而几十万 年前智人,也在循环与分支所构成的逻辑中打转. 再然后有了程序,方法也就出来了,推动这种逻辑向前发展的,是“方法”和“方法论” 的出现.长期的编程实

一切都是为了实现-大道至简第六章读后感

大道至简第六章的内容比较多,也比较深.或者说这一章作者是从一个更高的层次.更开阔的视野.更独特的角度来解读软件工程这四个字的具体含义的. 作者的这些肺腑之言都是作者在软件行业工作了多年之后总结出来的.开发技术对一个软件产品质量的好坏和最终的成功的影响并虽然不能说是一点也没有,但也不是很大.真正起到决定性因素的不是那些技术细节,而是一个高度过程化.通晓方法论.拥有大量工具的开发团队或者是开发公司.在这个团队里面,无论是对项目经理还是开发经理甚至是一个普通的开发人员的要求都是很高的.团队内的每个人必

大道至简 第六章 读后感

说点什么呢,今天看了看大道至简第六章<从编程到工程>. 文章以<列子·说符>的“得其精而忘其粗,在其内而忘其外:见其所见,不见其所不见,视其所视,而遗其所不视.”为题记.第一节讲了“语言只是工具”,作者讲述了他曾经对一些编程语言的看法.他曾经也热衷于讨论语言的优劣,但是他现在不这样了,他已经不再专注于语言, 正如他在第一章中写到的一样:成天讨论这门语言好,或者那门语言坏的人,甚至是可悲的.确实,程序的好坏不在于语言,在于算法. 第二节又写了“程序”,程序=算法+结构,编程的精义于此

读《大道至简》第二章有感

今天,我对老师的推荐书籍<大道至简>的第二章进行了阅读,<大道至简>的第二章的标题是——是懒人造就了方法.仔细想来也确实如此:人们不想走路 于是便发明了汽车和飞机,人们不想爬楼梯于是就发明了电梯,等等.所以说,我们想要提高自己的工作效率,要想让自己拥有更多的空余时间,我们就必须要学会 创造出懒人的方法来提高我们的效率. 在<大道至简>的第二章中我们看到,愚公想要搬走自己房子面前的高山,他只能想到通过人力去挖,去搬.这样做虽然是对的,也可以达到自己的目标,但是 这样做所花