=按位分隔符压缩算法=
把数据进行按一定位数进行分割,比如素数位二进制数据,比如素数位十六进制数据,素数一般取较大值,比如11,13,17,19,23,29;
然后进行统计,为了快速压缩,可以把数据进行检索模糊化。
比如使用2,3,5,7。
比如:使用11位的检索方式,那么就从00000000000到11111111111全部检索各有多少个(使用了分隔符)比如把
00000000000111111111110000000000011111111111,使用分隔符(编程自定义分隔符,比如使用#),然后就把数据分割为#00000000000#11111111111#00000000000#11111111111#
这样就不会统计出错,比如不会把0101和1010都统计成存有101的错误,分隔符是为了避免这种检索错误,所以数据分段需要使用分隔符来分割。
分割完毕之后,就进行统计,先是数位统计,统计出从#00000000000#→#00000000001#→#00000000010#→一直到#11111111111#,各有多少个,然后就可以在解压缩时,生成同样多的数据,然后进行位移就行了。
数据可以通过统计的方式来得知其长度和数据内容,然而其排列顺序完全损失了,就需要通过另外一种方式来记录顺序。
因为是使用11位的二进制来分割统计,那么就可以简单的划分为5位+6位的方式来进行顺序排列:
比如把?用于取一个模糊值(也就是说#1?1?1#有多种有效可能性,#10101#和#10111#和#11101#和#11111#都可以记录为#1?1?1#,这里为了减少篇幅,就没有使用#1?1?1?1?1?1#来作为说明),然后把#1?1?1?1?1?1#记录为A(没错就只