我正在研究huffman文件压缩项目。直到现在我知道它的工作原理如下:
file.txt(original) -> file.huf(encoded, compressed) -> file.txt(decoded)
我要做的是打开txt文件,生成霍夫曼代码,但是如何在原始文件的二进制代码文件中替换这些代码。例如,如果file.txt
存储abc
,那么其ASCII编码文件将存储01100001 01100010 01100011
和霍夫曼编码文件,即file.huf
应存储10 11 0
,然后此文件应该使用生成的编码图进行解码。
我的问题是如何在文件实现级别用C ++做这个,我该如何改变二进制文件?
答案 0 :(得分:1)
我已经弄清楚了,用简单的话说,制作一个字母表的代码然后另一个并组合,迭代这个直到代码等于或大于8个包含1和0的字符,然后这个8位数的序列被编码为某个字符并存储在文件中。 这样可以压缩文件。