## 哈夫曼编码($Huffman$ $Coding$)原理详解 ### 一、哈夫曼编码简介 哈夫曼编码,又称为霍夫曼编码($Huffman$ $Coding$) 是一种可变长编码($VLC$, $variable$ $length$ $coding$)方式,比起定长编码的 $ASCII$ 编码来说,哈夫曼编码能节省很多的空间,因为每一个字符出现的频率不是一致的; 是一种用于**无损数据压缩**的熵编码算法,通常**用于压缩重复率比较高的字符数据**。 如果我们通过转换成$ASCII$码对应的二进制数据将字符串 $BCAADDDCCACACAC$ 通过二进制编码进行传输,那么一个字符传输的二进制位数为 $8bits$,那么总共需要 $120$ 个二进制位;而如果使用哈夫曼编码,该串字符可压缩至$28$位。 [$Q$:为什么一个字节是八个bit](https://blog.csdn.net/snowin1994/article/details/91393390)







