c - 使用霍夫曼码解码

标签 c binary binary-data huffman-code

我创建了一个程序来读取文件并将其逐个字符编码为可变长度的二进制代码。前任。最常见的字符是 110,下一个常见的字符是 0010,等等。然后我将整个二进制代码放入一个文本文件中。所以代码看起来像 11010011001110000110001010110110...然后继续。我将如何将二进制编码解码回字符?

最佳答案

如果你真的生成了霍夫曼码,那么它就是 prefix code 。也就是说,没有一个有效代码也是另一个有效代码的前缀。因此,您只需从头开始,与这些位匹配的任何代码都是第一个符号。删除这些部分并重复。您的第一个符号与代码 101 相关联。删除 101,然后在代码中查找 1、10、100、1001、10011 等,直到找到匹配项。

关于c - 使用霍夫曼码解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231973/

相关文章:

python - 如何将字符串的二进制表示转换回 Python 中的原始字符串?

c - 为动态数组的元素赋值

c - 使用字符串索引数组 (C)

c - 按多个参数对链表进行排序

c - 在 C 中将 float64 转换为 uint64 时有精度损失吗?假设只有数据的整数部分是有意义的

c# - 为什么8位字节中的~1等于-2?

c - 如何为 2D 数组设置循环边界以按线程分割工作

haskell 和大型二进制文件

binary - 帮助逆向工程二进制文件格式的工具

c - C 中有类似 BinaryWriter 的东西吗?