The present invention provides a method for encoding binary data, including obtaining the binary data; the binary data length is k bytes, K is a natural number; using a predetermined encoding algorithm of binary data is converted to K bytes (k+t) encoding 7 bytes of data, t is the smallest integer greater than or equal to K divided by 7. The coding file obtained through the application technology scheme is smaller than the Base64 encoded file length, and the traffic consumed on the network is less, which can adapt to the more demanding application scenarios.
【技术实现步骤摘要】
二进制数据的编码、解码方法和装置
本申请涉及网络通信
,尤其涉及一种二进制数据的编码方法和装置、一种二进制数据的解码方法和装置。
技术介绍
在计算机中很多资源以二进制数据的形式存储,例如图片、音视频流、可执行程序等,包含这些资源的文件通常都是二进制文件。但是在一些网络协议或网络应用中,能够正确传输的数据只能是通用字符,二进制数据在基于这些网络协议或网络应用进行传输时,需要先在发送端将二进制数据编码为字符数据,在传输到接收端后,再将字符数据解码为二进制数据。现有技术中,Base64是最为常用的二进制数据编解码技术。Base64采用64个字符对二进制数据进行编码,对N字节的二进制数据,将对应的8*N位中连续的每6位分割为1个部分,每个部分的值都在0到63之间,将该值对应于1个ASCII(AmericanStandardCodeforInformationInterchange,美国信息交换标准代码)字符,将所有部分对应的ASCII字符拼接起来,即可得到二进制数据的Base64编码。对应的解码过程与上述相逆,不再赘述。可见,3字节二进制数据的Base64编码数据的长度为4字节,一个二进制文件在转换为Base64编码文件后,文件长度增加了大约33%。也就是说,Base64编码后的二进制文件在传输时要占用的流量增加了三分之一左右。在移动互联应用中,降低服务端与用户手持设备之间的交互流量对所有业务而言都是至关重要的问题。Base64编码后的字符文件较大,难以满足一些苛刻的应用场景的要求。
技术实现思路
有鉴于此,本申请提供一种二进制数据的编码方法,包括:获取二进制数 ...
【技术保护点】
一种二进制数据的编码方法,其特征在于,包括:获取二进制数据;所述二进制数据的长度为k字节,k为自然数;采用预定编码算法将k字节的二进制数据转换为(k+t)字节的7位编码数据,t为大于等于k除以7的最小整数。
【技术特征摘要】
1.一种二进制数据的编码方法,其特征在于,包括:获取二进制数据;所述二进制数据的长度为k字节,k为自然数;采用预定编码算法将k字节的二进制数据转换为(k+t)字节的7位编码数据,t为大于等于k除以7的最小整数。2.根据权利要求1所述的方法,其特征在于,所述预定编码算法包括:在k字节二进制数据中提取每个字节的预定位,按照设定位顺序组合为t字节7位编码的组合位数据;将k字节二进制数据中每个字节剩余的7位作为k字节7位编码的剩余位数据;将k字节7位编码的剩余位数据和t字节7位编码的组合位数据按照设定字节顺序进行排列,生成所述二进制数据的7位编码数据。3.根据权利要求2所述的方法,其特征在于,所述设定字节顺序包括:k字节剩余位数据在t字节组合位数据之前或之后,按照所对应的二进制数据排列。4.根据权利要求2所述的方法,其特征在于,所述设定位顺序包括:将连续的s字节二进制数据中提取的预定位依次作为一个字节组合位数据的第0位到第(s-1)位、或第(s-1)位到第0位;s为不大于7的自然数。5.根据权利要求2所述的方法,其特征在于,所述预定位为每个字节的最高位。6.一种二进制数据的解码方法,其特征在于,包括:获取待解码的7位编码数据;所述7位编码数据的长度为p字节,p为大于1的自然数;采用预定解码算法将p字节的7位编码数据转换为(p-t)字节的二进制数据,t为大于等于p除以8的最小整数。7.根据权利要求6所述的方法,其特征在于,所述预定解码算法包括:按照设定字节顺序,从p字节的7位编码数据中获取k字节的剩余位数据和t字节的组合位数据,k为p减去t的差值;从t字节7位编码的组合位数据中提取k位,将提取的每1位插入与所述位的设定位顺序对应的k字节剩余位数据的预定位,得到k字节二进制数据。8.根据权利要求7所述的方法,其特征在于,所述设定字节顺序包括:k字节剩余位数据在t字节组合位数据之前或之后,按照所对应的二进制数据排列。9.根据权利要求7所述的方法,其特征在于,所述设定位顺序包括:一个字节组合位数据的第0位到第(s-1)位、或第(s-1)位到第0位,依次对应于连续的s字节剩余位数据;s为不大于7的自然数。10.根据权利要求7所述的方法,其特征在于,所述预定位为每个字节的最高位。11.一种二进制数据的编码装置,其特征在于,包括:二进制数...
【专利技术属性】
技术研发人员:徐达峰,黎三平,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。