编码、解码方法以及编码装置和解码装置制造方法及图纸

技术编号:13092504 阅读:82 留言:0更新日期:2016-03-30 19:51
本发明专利技术实施例提供一种编码、解码方法以及编码装置和解码装置,所述编码方法包括:获取待编码的数据,所述待编码的数据为二进制字符串;根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据对应的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用如下64个字符:0-9、@、A-Z、_、a-z。所述编码方法在缩短待编码的数据的长度节约存储空间的基础上,由于本发明专利技术实施例中的编码方法采用的字符集中的所有字符均能在linux操作系统和windows操作系统下作为文件名使用,并且字符“@”和“_”可以在shell、正则表达式中直接使用,且兼容常用语言C/C++/Java中的代码语句,具有更强的兼容性。

【技术实现步骤摘要】

本专利技术实施例涉及数据通信技术,尤其涉及一种编码、解码方法以及编码装置和 解码装置。
技术介绍
在大数据场景中,诸如日志文本、K-means等应用均包含大量的字符型数字,字符 型数字是指能够以文本的方式显示和打印的字符,并且以字符串的形式存储。字符型数字 比数字型数字占用更多的存储空间,例如,10进制数字255,若以数字型数字存储,只需要1 个字节,因为1个字节可以存储256个不同的状态(0~255)。若以字符型数字存储,需要 3个字节,此时每个字节只用了 10个状态(0-9),大量的状态被浪费掉了。为了减少字符型数字的存储空间,现有技术中,通过增大数字的进制使每一个字 符型数字能够存储更多的状态,从而减少字符型数字的存储空间。例如,存储64进制编码 的字符型数字相对于存储10进制编码的字符型数字大约可以节约44. 6%的存储空间,存 储64进制编码的字符型数字相对于存储16进制编码的字符型数字大约可以节约1/3的存 储空间。现有64进制编码方法使用的字符集为:A-Z、a-z、0-9、+、/,该字符集依次代表的 ASCII码的值分别为 0-25、26-51、52-61、62、63。 但是,现有技术中,字符"/"在linux操作系统和windows操作系统下不能作为文 件名使用,字符" + "在shell中表示oneormore,必须经过转义才能作为普通字符使用。 并且字符"/"和" + "在运算符中分别代表除号和加号,写成运算式时会产生歧义。例如,字 符串"///",可以理解为是一个使用64进制编码的64进制字符串,也可以理解为一个十进 制算式:63/63。其中,这里的shell通常可以为称为壳,是指一种可以提供使用者使用界面 的软件。
技术实现思路
本专利技术实施例提供一种编码、解码方法以及编码装置和解码装置,以解决现有技 术中64进制编码方法的部分字符不能在linux操作系统和windows操作系统下作为文件 名使用,以及在运算式中产生歧义的问题。 本专利技术第一方面提供一种编码方法,包括: 获取待编码的数据,所述待编码的数据为二进制字符串; 根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据对 应的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的 字符集包括如下64个字符:0-9、@3-2、_和&-2。 结合本专利技术第一方面,在本专利技术第一方面的第一种可能的实现方式中,所述字符 集中的字符表示的数字的大小顺序与所述字符的美国标准交换信息代码ASCII码的大小 顺序保持一致。 结合本专利技术第一方面的第一种可能的实现方式,在本专利技术第一方面的第二种可能 的实现方式中,所述字符集中的字符的顺序从小到大依次为:〇-9、@3-2、_、&-2,其中,所述 64进制编码字符0-9表示的数字为0-9,所述64进制编码字符@表示的数字为10,所述64 进制编码字符A-Z表示的数字为11-36,所述64进制编码字符_表示的数字为37,所述64 进制编码字符a-z表示的数字为38-63。 结合本专利技术第一方面以及第一方面的第一种和第二种可能的实现方式,在本专利技术 第一方面的第三种可能的实现方式中,所述64进制编码字符串具有起始字符,所述起始字 符用于标识所述64进制编码字符串的起始位置。 本专利技术第二方面提供一种解码方法,包括: 获取待解码的数据,所述待解码的数据为64进制的编码字符串; 根据64进制解码规则对所述待解码的数据进行解码以得到所述待解码的数据的 解码数据,所述解码数据为二进制字符串,其中,所述64进制解码规则使用的字符集包括 如下64个字符:0-9、@、厶-2、_和a-z。 本专利技术第三方面提供一种编码装置,包括: 获取模块,用于获取待编码的数据,所述待编码的数据为二进制字符串; 编码模块,用于根据64进制编码规则对所述待编码的数据进行编码以得到所述 待编码的数据的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码 规则使用的字符集包括如下64个字符:0-9、0、A-Z、_、a-z。 结合本专利技术第三方面,在本专利技术第三方面的第一种可能的实现方式中,所述字符 集中的字符表示的数字的大小顺序与所述字符的美国标准交换信息代码ASCII码的大小 顺序保持一致。 结合本专利技术第三方面的第一种可能的实现方式,在本专利技术第三方面的第二种可能 的实现方式中,所述字符集中的字符的顺序从小达到依次为:〇_9、@、A-Z、_、a_z,其中,所述 64进制编码字符0-9表示的数字为0-9,所述64进制编码字符@表示的数字为10,所述64 进制编码字符A-Z表示的数字为11-36,所述64进制编码字符_表示的数字为37,所述64 进制编码字符a-z表示的数字为38-63。 结合本专利技术第三方面以及第三方面的第一种和第二种可能的实现方式,在本专利技术 第三方面的第三种可能的实现方式中,所述64进制编码字符串具有起始字符,所述起始字 符用于标识所述64进制编码字符串的起始位置。 本专利技术第四方面提供一种解码装置,包括: 获取模块,用于获取待解码的数据,所述待解码的数据为64进制的编码字符串; 解码模块,用于根据64进制解码规则对所述待解码的数据进行编码以得到所述 待解码的数据对应的解码数据,所述解码数据为二进制字符串,其中,所述64进制解码规 则使用的字符集包括如下64个字符:0-9、0、A-Z、_、a-z。 本专利技术第五方面提供一种编码装置,包括: 处理器、存储器和系统总线,所述处理器和所述存储器之间通过所述系统总线连 接并完成相互间的通信; 所述存储器,用于存储计算机执行指令; 所述处理器,用于运行所述计算机执行指令,使所述编码装置执行如本专利技术第一 方面以及第一方面的第一种至第三种可能的实现方式提供的任一所述的方法。 本专利技术第六方面提供一种解码装置,包括: 处理器、存储器和系统总线,所述处理器和所述存储器之间通过所述系统总线连 接并完成相互间的通信; 所述存储器,用于存储计算机执行指令; 所述处理器,用于运行所述计算机执行指令,使所述解码装置执行本专利技术第二方 面提供的方法。 本专利技术实施例提供的编码、解码方法以及编码装置和解码装置,所述编码装置通 过获取待编码的数据,所述待编码的数据为二进制字符串;根据64进制编码规则对所述待 编码的数据进行编码以得到所述待编码的数据对应的编码数据,所述编码数据为64进制 的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0-9、@、A-Z、 _、a-z。所述编码方法通过对待编码的数据进行编码,以缩短待编码的数据的长度,从而节 约存储空间,所述字符集的所有字符均能在linux和windows下作为文件名使用,并且字符 和"_"不是算式运算符和逻辑运算符,在写成运算式时不会产生歧义,可以唯一的表示 一个运算式。另外,字符和"可以在shell、正则表达式中直接使用,且兼容常用语 言C/C++/Java中的代码语句。与现有的64进制编码方法相比,本专利技术实施例提供的编码 方法应用范围更加广泛,具有更强的兼容性。【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使本文档来自技高网
...

【技术保护点】
一种编码方法,其特征在于,包括:获取待编码的数据,所述待编码的数据为二进制字符串;根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据对应的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0‑9、@、A‑Z、_和a‑z。

【技术特征摘要】

【专利技术属性】
技术研发人员:岳银亮孟磊冷镇宇熊劲
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1