前置内容

  1. 什么是编码

如ASCLL码,任何信息在计算机中都以二进制存储;
一台计算机的信息传输导另一台计算机中,需要传输32个比特位;信息传送以bit为单位;这段信息的传输需要用时:1s。
编码即使用更少的二进制信息来表示文本内容,以使带宽不变的条件下,信息的传输速度变快;

  1. 定长与变长编码

    定长编码:每个字符的的编码长度固定,如ASCII编码;
    变长编码:UTF-8、UTF-16,每个字符的编码长度不一定相同;
    变长编码>=定长编码

  2. 变长编码的应用场景

    1. 如:只有四种字符:ab01,且有事先统计,知道每个字符的出现频率;
    2. 平均编码长度:哈夫曼编码与哈夫曼树 - 图1,哈夫曼编码与哈夫曼树 - 图2:表示第i种字符的编码长度,哈夫曼编码与哈夫曼树 - 图3

1.哈夫曼编码与哈夫曼树

2.代码实现