【发布时间】:2011-12-18 16:41:38
【问题描述】:
在inftrees.c,这是从规范的霍夫曼表示构造查找表的代码,作者写道:
/* replicate for those indices with low len bits equal to huff */
incr = 1U << (len - drop);
fill = 1U << curr;
min = fill; /* save offset to next table */
do {
fill -= incr;
next[(huff >> drop) + fill] = here;
} while (fill != 0);
/* backwards increment the len-bit code huff */
incr = 1U << (len - 1);
while (huff & incr)
incr >>= 1;
if (incr != 0) {
huff &= incr - 1;
huff += incr;
}
else
huff = 0
虽然我多次阅读评论,但我可以弄清楚 drop 的含义是什么。另一个问题是作者使用什么方法来构建霍夫曼代码?什么是向后增量?
你能帮我解释一下吗,谢谢。
【问题讨论】: