【发布时间】:2018-01-08 21:56:50
【问题描述】:
我试图了解霍夫曼编码的工作原理,它应该压缩数据以比实际文本占用更少的内存,但是当我编码时
"Text to be encoded"
其中有 18 个字符我得到的结果是
"100100110100101110101011111000001110011011110010101100011"
我应该将这些结果位除以8,因为字符有8 位吗?
【问题讨论】:
-
实际结果是
10010011 01001011 10101011 11100000 11100110 11110010 10110001 00000001- 8 ASCII 字符(从技术上讲,您不应该 除 8,而是 group 按 8 位块)。更准确的是压缩前的"Text to be encoded" == 18 * 8 = 144 bits和压缩后的57位 -
“要编码的文本”是一个字符串。未压缩字符串中的每个字符由一个 8 位 ASCII 字符表示,使总的未压缩字符串为 18*8=144 位。霍夫曼码是 57 位。