经统计,某计算机的9条指令的使用频度分别为:0.01、0.06、0.24、0.03、0.02、0.07、0.25、0.28、0.04。分别求出用等长码、哈夫曼码、只有两种码长的扩展操作码3种编码方式的操作码平均码长。
解:9条指令的等长操作码的平均码长是[㏒₂9]=4位
哈夫曼编码可先用根据哈夫曼算法构造哈夫曼树如答26图所示,图中矩形下方的数字表示该频度指令所用的二进制位编码的码位数,所以哈夫曼编码操作码的平均码长为:
采用只有2-5两种码长的扩展操作码,可根据9条指令所给出的使用频率值分成两种。让使用频度较高的3条指令用2位操作码编码表示,留下一个编码作为长码的扩展标志,扩展出3位,共有6条使用低频的指令的操作码,这样,操作码的平均码长为: