我设计了一种二进制数据转成文本格式的编码方式,称之为ASCII86。
取ASCII表中的!到v,共86个ASCII字符,表示0到85。
每4个字节为一组,计算每个字节除以86的商和余数,商的取值范围是0、1、2,余数的取值范围是0到85。
把4个商合起来,3⁴=81,取值范围是0到80,用1个字符表示,4个余数用4个字符表示,总共4个字节就编码成了5个字符。
源数据的总长度不是4的整数倍时,补足的方法可采用ASCII85的补足方式。
再定义一个压缩规则:第一个字节为82、83、84时,分别表示连续的2、3、4个零字节。
网友评论