1
heganj 2013 年 9 月 24 日
转成16进制、甚至36进制压缩、如果数字没有Long的最大值大,可以考虑writeLong和ReadLong。这两点是起码能想到的
|
2
luikore 2013 年 9 月 24 日
11*11=121
先用表 ('0'-'9' => 0-9, ',' => 10) 转换成 0-10 的整数, 然后两字节压成一字节即可: result = b1 * 11 + b2 解压时 b2 = result % 11; b1 = (result - b2) / 11 再查表还原 |
3
webflier 2013 年 9 月 24 日 |
5
mikawudi 2013 年 9 月 24 日
通讯端和服务端都是自己写的话....编码下不就好了.....11种字符用4位做编码,一个byte高4位一个字符,低四位一个字符....完事了,和ascii比正好压缩一半长度
|
7
webflier 2013 年 9 月 24 日 via Android
@luikore 是,我没仔细看就回复了。楼主的文本涉及的字符比较少,可用伙夫慢树写一个简单的算法,再结合5楼的方法。。。。。压缩率应该挺好看的
|
9
mikawudi 2013 年 9 月 26 日
哈夫曼编码在这没啥用,毕竟表示的位数本来就很短...哈夫曼编码后,间隔符浪费的空间占比都很大....话说才看到2L大哥的编码方式....貌似只要7位的说....比BCD编码强不过'0'->0不大好吧,不然连续的多个0会被识别成串尾
|