完成二进制文件将其转换为字节数组

时间:2015-10-21 16:08:13

标签: huffman-code

我正在实现一个霍夫曼库,现在我将编码结果作为字符串。我想序列化树以及消息,我的结果是这样的:

Message: aabbccdd
Tree output: 001011000011011000100101100011101100100
Encoded message: 0000010110101111
Serialized message (tree + message): 0010110000110110001001011000111011001000000010110101111

第二步,我想将这些二进制字符串转换为字节数组。问题是位数不一定适合这样做:可能有一些额外的位。问题是如何将最终输出转换为字节数组并能够对其进行反序列化?

树的编码如下所述:Efficient way of storing Huffman tree

1 个答案:

答案 0 :(得分:0)

除非您能确保所有代码的长度至少为8位,否则您需要a)添加一个带有自己的代码的结束符号来终止消息,或者b)添加几个位到开头消息中说明在最后一个字节中有多少位有效(假设有一些其他信息源说明消息占用了多少字节)。否则,最后的额外位可能被误解为一个或多个非预期的附加符号。