【技术实现步骤摘要】
一种基于84进制高效率数据压缩编码算法
[0001]本专利技术是为解决电子商务中对订单号压缩需求,传统订单号通常以时间为序列15位数字精巧到秒可杜绝网站多用户并发重单问题,故订单号不能太短,太短则大用户环境下会产生重复订单,使得业务逻辑溢出漏洞;用户在同一批次购物车可选择多家商家不同产品同时下单,每商家产生一个订单号,多批次订单号在一次购物结束进行清算会产生一个总单号进行提交,完成支付;此过程为方便查询数据有俩种设计方案:方案A多批次商家订单放在一张表关联总支付订单号,方案B 一个购物总订单号关联多商家订单中间逗号分隔;A:一次购物可容纳商家的数量不限,但在经常查询订单会遍历查所购买所有支付商家的关系表,进行冗余遍历查询,效率低下.;B:可容量商家数量字段空间有限字长不超过250 ,查询方便一次关联即可查处所有支付商家,最多可容纳250/(15+1)=15个不同类商品订单;而基于本算法encodeInt2Base60/encodeInt2Base84可实现订单号保留原信息同时,将数字长度压缩率接近50%. 由此产生可容量订单数250/(15/2+1+1)=27个不同类订单号存储,效率提升接近45%.同时免除数据库冗余遍历查询,在保障订单不重基础上,效率双倍提升;27个订单存储基本满足用户需求.订单号太短不行,太短容易引发并发冲突;太长亦不行,订单长限定:15位经过压缩算法保持数据唯一性,减少空间存储提升效率.正是基于本需求需要研发高压缩比数字压缩编码技术,速度快,无损压缩, 本专利技术为一种新型数据压缩编码技术,该压缩技术利用asc ...
【技术保护点】
【技术特征摘要】
1. 一种基于10进制数字值为基数的编码:对其数值有选择的进行60进制,84进制进行重新编码实施的技术方案,其特征如下: encodeInt2Base84,encodeInt2Base60,encodeAscii2Base84 解码依次对应:decodeBase84Int,decodeBase60Int,decodeBase84Ascii1.0
‑
控制符1.1位于最后一位代表奇数1.2位于除1.1则表示高进位:forencodeInt2Base84,解码dx+=84;1.3位于除1.1则表示低进位:forencodeAscii2Base84解码dx;1.4.0*./控制符;1.4.1*控制符*标识为整数数据如果以/结尾则标识>127的字符为GBK编码xx为GBK编码5位数字/汉字,如果原gbk中文为奇数位,则自动填充\0'填充偶数位;1.4.2*xx.即ASCII数字,forencodeAscii2Base84方案,当且仅当ascii码混合字母与数字,其数字必须连续满足大于5位时,该模块才启用encodeInt2Base60数字压缩技术,1.4.1,1.4.2编码自左起依次取2位,取整数值
‑
>dx,如果奇数末位依据1.1补
‑
;1.5.084进制参MT84码表规则(参表MT84码表),60进制参MT60表;1.5.1丢弃ASCII0
‑
31控制码;1.5.2设x为ascii字符变量;dx=ASCII(x)序号dx
‑
=32;1.5.3低进位变换dx<43则buf
‑
;bufMT84[dx];1.5.4非进位变换dx
‑
=43;bufMT84[dx];1.6url传输+
‑
>**服务端逆替换空格或**
‑
>+再解码,=进行urldecode;1.7解码根据MT84与ascii码表逆转换;1.8基于1.4.1,1.4.2规则编码为encodeInt2Base60refMT60码表{0
‑
9A
‑
Y,a
‑
y}共60位,z为base60左进位,Z结束控制符,后跟1位数字标识解码多余用于控制数据还原;1.9因base84自动判断整数包括体内用base60编码,故虽然同一符号在不通编码规则不同,同时设计编码规避重复;Base84含zZ./,但这些符号在base60不存在.故混合编码只是局部嵌入,不会打乱;1.9.1一个ascii2base84编码可容纳多个int2Base60码块,遇到不同块调不同解码程序进行解码;1.10GBK编码以5位数字,不足前补0,解码除掉前缀0,取ascii码;1.11ascii码只是变换位置不会减少编码位数,对int字符串会压缩编码;1.12当int码,GBK码长小于2,返回NoN非数字;1.13本发明数字压缩编码精要,采用数字10进制,每俩位一组进行分隔进行编码,解码1.13.1基于1.13俩位数字最大99,base60编码,其进位最大1以z代替。2.基于Base84.encodeInt2Base84,实现的一种高压缩比的数字码压缩技术,其压缩率最大可接近50%,其特征如下:2.1 基于1.0,1.5.1,1.5.2,1.5.3 ,可知单个ascii符号最多可表示俩位10进制数值范围[0,83],而大于83且<=99的概论只有16%,当相邻俩位10进制数大于83,经过编码用
‑
MT84[dx%84]标识,解码是z替换为84进制的高位,逆运算dx+=84即可还原信息,即这时用
‑
加余码组成字母2位标识原2位10进制数字;也就是说只有16%的概率需要用可变长2位,其余84%的概率是1位字符代替俩位信息;在编码数据时,每2位数字通过换算大概率用1位字符标识,这是本发明以接近50%的压缩比基础;2.2 其产生的编码字符,由MT84表字符决定,除+字符在url 转发需要转义**,其它字符原封发送;当然在解码前需要进行urldecode 下较为可靠。3.一种基于1可实施的高效,高压缩比的时间数字订单压缩技术,其特征如下:3.1 基于1.8 encodeInt2Base60,MT60表,可实现优雅符号密文输出,该技术方案主要用于密文需要存储在数据库,或对外接口服务,长数字订单就是例子;如果订单符号发送一批奇怪符号,大概率会被蹩脚程序员当作乱码删除,引发不必要的损失;该压缩率有60%的概论为1:2压缩,有40%的概率1:1不压缩;实际测算基于时间订单日期除年外均在60以内数字,其实该算法最早实现就是针对时间数字进行压缩的,这样概率提升到90%是1:2压缩,即50...
【专利技术属性】
技术研发人员:ꢀ五一IntClH零三M七三零,
申请(专利权)人:道和邦广州电子信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。