我想知道在 Huffman Copression 中处理最后一个字节的最佳方法是什么。我在 C++ 中有一些不错的代码,可以很好地压缩文本文件,但目前我必须向我的编码文件写入编码字符的数量(嗯,它等于输入文件的大小),因为不知道如何处理最后一个字节更好的。
例如,要压缩的最后一个字符是“a”,代码是 011,我刚刚开始写入新字节,所以最后一个字节看起来像:011 + 大约 5 位垃圾,我将它们设为零,例如结束。当我对这个编码文件进行编码时,可能会发生代码 00000(或更少的零)是某些字符的代码,所以我的编码文件末尾会有一些垃圾字符。
正如我在第一段中所写的那样,我通过在编码文件中保存输入文件的字符数来避免这种情况,并且在编码时,我正在读取编码文件以达到该数字(而不是 EndOfFile,不要到达那些示例5 个零)。这不是很有效,编码文件的大小会增加很长的数字。
我怎样才能更好地处理这个问题?