计算机中的文件都是由一串01串组成的,我们可以通过某种方式压缩它。
我们可以用一个十进制数串(长度不超过1000),代表一个长度不超过8000的01串。例如十进制串15 1 128代表01串00001111 00000001 10000000。01串可以划分成连续的片段(即连续成段的0或1),如上例可划分成0000 1111 0000000 11 0000000五个片断。我们可以用一个字节(8位)的二进制表示一个片断,表示方法为:字节的最高位代表此片段的颜色是0还是1,低7位代表此片段的长度,所以上例就可以表示为:00000100 10000100 00000111 10000010 00000111。注意到现在有5个字节,每个字节可以用一个不超过255的十进制数表示,所以我们又可以把它表示成4 132 7 130 7。
我们再看看整个编码压缩过程:
15 1 128
00001111 00000001 10000000
0000 1111 0000000 11 0000000
00000100 10000100 00000111 10000010 00000111
4 132 7 130 7
可以保证所有输入数据连续的0或1片段的长度均小于128。
24 15 1 128
4 132 7 130 7