我想编写一个解压缩器,用于使用固定的霍夫曼代码对压缩数据进行压缩。形成规范:
BTYPE specifies how the data are compressed, as follows: 00 - no compression 01 - compressed with fixed Huffman codes 10 - compressed with dynamic Huffman codes 11 - reserved (error) The only difference between the two compressed cases is how the Huffman codes for the literal/length and distance alphabets are defined.
我希望解压器在 BTYPE=01 时解压数据
那么如何在没有树的情况下解码霍夫曼代码?
编辑:
所以霍夫曼代码将是这样的:
0 110000
1 110001
2 110010
144 110010000
145 110010001
255 111111111
256 0
257 1
258 10
259 11
260 100
279 10111
280 11000000
287 11000111
我不明白的是,如果我遇到代码10,我如何区分距离代码中的值2和值258,因为值0-23和256-297具有相同的代码