首页 > 编程语言 >《程序是怎样跑起来的》自己动手压缩数据

《程序是怎样跑起来的》自己动手压缩数据

时间:2024-02-17 22:24:20浏览次数:28  
标签:编码 巴比特 哈夫曼 文件 压缩 程序 动手 数据

一,文件是以字节为单位记录的,文件是字节数据的集合体,文件就是一串连续的字节数据
二,游程编码的原理
将文件内容用数据成重复次数的方式进行压缩,就是游程编码
缺点:对于图片压缩率比较高,对于文本,文件则会增加它的内容,使他文本需内存量更大
三,哈夫曼算法
哈夫曼算法
将出现次数多的数据用小于巴比特的编码表示,次数少的用于大于巴比特的编码,表示最终无论大小均用巴比特为单位存储,在文件中能够有效的压缩文本文件
四,使用数来构建哈夫曼编码
第一步,将数据按出现的频率排序
第二步,选择出现频率最多的两个数据向上拉出两条线,合并分支将两者的频率相加。作为上侧节点的频率,如果频率最低的选项有多个任选两个即可
第三步,重复第二步,任意位置两个数据均可合并
第四步,当智胜跟上最后一个数据时,哈夫曼数就构建完成了。现在我们从根出发,在分支上写零在右,分支上写一将从根出发到达目标字符,所经路径上的0和1按顺序排列就能得到这个字符的哈夫曼编码
五,有损压缩和无损压缩
文本文件不可有损压缩
图片压缩后多会有损
以上是我对第六章的内容的梳理

标签:编码,巴比特,哈夫曼,文件,压缩,程序,动手,数据
From: https://www.cnblogs.com/sunshaohan/p/18018536

相关文章

  • 《程序是怎样跑起来的》第四章读后感
    计算机是处理数据的机器,而程序负责规定处理步骤和数据结构作为处理对象的数据储存在内存和磁盘里,因此程序员必须能够灵活的使用内存和磁盘。内存的物理结构十分简单,它的本质上是一种名为内存芯片的装置。内存芯片内部有很多能储存8比特数据的容器,只要指定容器的地址就可以对数据进......
  • 《程序是怎样跑起来的》读后感——第三章 计算机进行运算小数时出错的原因
    一、二进制的限制计算机内部所有的信息都是以二进制的形式存储和处理的。然而,并非所有的十进制小数都能被精确地用二进制表示。例如,0.1在十进制中是一个无限循环小数,但在二进制中却无法精确表示,只能进行近似表示。这种差异导致了计算机在运算小数时可能出现误差。二、浮点数表示......
  • 《程序是怎样跑起来的》计算机在计算小数时会出错的原因
    一,原因无法准确表示的值,就只能用近似值来表示计算机能力有限,无法处理无限小数,只能根据变量所对应的数据类型的数,采取四舍五入处理法进行处理。由于二进制为近似数,转化为十进制后与所求值存在误差,它是一种正常的现象。二,浮点数分类:双精度浮点类型有64位单精度浮点类型有32位......
  • 《程序是怎样跑起来的》让内存画方为圆
    一,内存的物理结构1.分类:RAM[可读可写的存储器][需要刷新]ROM[只读不写的存储器][不需要刷新]2.内存的芯片内存的芯片包括电源地址,信号,数据信号和控制信号二,内存的逻辑结构像一栋大楼程序中通过指定的变量的数据类型就可以改变读写物理内存的单位长度,很方便三,用好内存,先从数组开始1......
  • 《程序是怎样跑起来的》内存与磁盘的密切联系
    内存与磁盘的密切联系一,程序必须从硬盘加载到内存中才方可运行二,磁盘缓存内存空间临时存放,从磁盘读取出来的数据可提高磁盘数据的访问速度三,将磁盘当成内存使用的虚拟内存将磁盘的一部分模拟成内存来使用的机制使用方式:将运行页面换入将不运行的页面换出,使一个程序被割成多......
  • 《程序是怎么跑起来的》第四章观后感
    第四章“熟练使用有棱有角的内存”关于这一章,是目前我最感兴趣的一章,因为在编程过程中我经常遇到内存这类的问题,讲述了程序运行时对内存的合理使用与优化,通过深入剖析内存的结构和工作原理,带领读者探索内存管理的重要性以及如何在编程过程中利用内存优化程序性能。这一章节对于程......
  • 《程序是怎样跑起来的》用二进制来理解数据
    一,计算机用二进制处理信息的原因原因:CPU是一种集成电路,计算机内部均由集成电路构成集成电路所有的引脚都有直流电压0v或者加5v两种状态处理信息的单位:最小的单位是比特有一位最基本的单位是字节有八位数据的处理:101110转化为八进制是00101110[在最高位增零,以此类推]......
  • 程序是怎样跑起来的第六章读后感
    从第六章学到了节约内存的编程方法。了解磁盘的物理结构,磁盘的物理结构是指磁盘存储数据的形式。磁盘是通过把其物理表面划分成多个空间来使用的。划分的方式有扇区方式和可变长方式两种。文件储存的单位是字节。文件以字节为单位保存,文件是将数据存储在磁盘等存储媒介中的一种形......
  • 程序是怎样跑起来的第七章读后感
    读完第七章后,我对程序中的数组和字符串有了更深入的理解。这一章详细介绍了数组和字符串的特性、操作以及在编程中的应用。我了解到数组是一种有序的元素集合,可以用于存储和操作一组相同类型的数据。通过对数组的索引操作,我们可以方便地访问和修改其中的元素。字符串作为特殊的......
  • 《程序是怎样跑起来的》第三章读后感
    计算机在计算小数时可能会出错,主要是因为有些十进制数的小数无法精确转换成二进制数。例如,十进制数0.1就无法用二进制数精确表示,即使小数点后面有几百位也无法做到。由于计算机只能处理有限的位数,无法表示无限循环的小数,因此在进行小数运算时,可能会出现精度损失或舍入误差。此外......