表1:
1. 从图1可以理解:size (二进制位数) value(十进制数取值范围)code(二进制代码)
任何一个10进制数,不管正负,用二进制位数和二进制代码表示。
如:12 查表1得知,用4位二进制1100表示 ,-7:3位 000 表示
上面的例子,Z 型排序后,数据变为 40 ,12, 10 ,1 ,-7, 0 ,0, -4 (0,0)
记成:(0,40),(0,12),(0,10),(0,-7),(2,-4),(0,0)
(0,40)是直流,不转换.
(0,12): 查表得知,12 是 4位的1100, 则(0,12)则记为(0/4)1100,
再查表3:(0/4)是1011 ,再加上12的二进制代码1100就变成1011 1100 此8位二进制就代表(0,12)的意思。
现在问题是,这些表在哪里下载,还是自己用程序实现?
开始试试用c代码实现这两张霍夫曼表 。