单选题 某计算机有14条指令,其使用频度如表2.10所示。这14条指令的指令操作码用等长码方式编码,其编码的码长至少为 (10) 位。若只用两种码长的扩展操作码编码,则其平均码长至少为 (11) 位。
表2.10 指令的使用频度
Ⅰ1
Ⅰ2
Ⅰ3
Ⅰ4
Ⅰ5
Ⅰ6
Ⅰ7
Ⅰ8
Ⅰ9
Ⅰ10
Ⅰ11
Ⅰ12
Ⅰ13
Ⅰ14
0.15
0.15
0.14
0.13
0.12
0.11
0.04
0.04
0.03
0.03
0.02
0.02
0.01
0.01


【正确答案】 B
【答案解析】(10-11)使用等长编码方式,如果指令编码长度是3位,它能够表示23=8条指令,而24=16>14,所以至少要4位编码长度才能将这14条指令编码。
哈夫曼编码技术是一种比较常用的变长编码方法,它采用的是一种优化静态编码方法,由该算法产生的二叉树具有最小的加权长之和∑WiLi,其中,Wj是哈大曼树中第j个叶节点的权值,Li为该叶节点到树根的距离。将题目转换为哈夫曼编码树,然后对其进行调整,如图2.23所示。
[*]
这样,树中的所有节点的深度都为3或5,所以我们可以按照码长乘以频度,再累加的方法来计算平均码长:
(0.15+0.15+0.14+0.1340.12+0.11)×3+(0.04+0.04+0.03+0.03+0.02+0.02+0.0140.01)×5=3.4
【正确答案】 B
【答案解析】