zoukankan      html  css  js  c++  java
  • 用C++实现文件压缩(1.5)

    今天主要做的就是,将完成huffman编码的数据以二进制的形式写入文件中。这是个挺苦逼的活。

    不过好在我以前玩过一段时间的单片机,所有能够较好的实现位运算,一位一位的将数据存放到缓冲区中,然后统一写入内存。

    今天这个代码,怎么说呢,应该算是比较细致的活吧,毕竟这已经是接触到了计算机存储中存储单位最小的位了,在代码的控制上要比较小心,写代码前必须把问题想清楚,想不清楚,就很容易悲剧。

    代码实现出来之后,原本大小为7.09kb的文件压缩后大小变成了4.86kb,这还是其中的信息头占了不少的内容,不然效率能更高一些。

    当然了,我现在还不清楚我写进去的文件是否是正确的,毕竟现在还没解压出来,不过头部数据是没问题的,这个已经测试过了。

    现在正在尝试着做解压,解压这块,不是很好处理。

    解码其实很简单,就是根据头部信息,重新构建huffman树,然后把读出来的bit流进行依次的遍历,一旦遍历到叶子节点,就表明完成了解码,将叶子节点中的数据取出来添加到文件中就OK了。

    但是,一位一位的向外读,这代码不是那么好写的……

  • 相关阅读:
    Android SDK在线更新镜像服务器
    redis
    自动
    Java编程时部分快捷键
    问题解决路
    35
    【JavaScript 8—基础知识点】:DOM
    【JavaScript 7—基础知识点】:BOM
    【JavaScript 6—基础知识点】:正则表达式(应用)
    【JavaScript 5—基础知识点】:正则表达式(笔记)
  • 原文地址:https://www.cnblogs.com/matrix-r/p/3351968.html
Copyright © 2011-2022 走看看