CN104657481A - 一种存储、查询数据的方法及装置 - Google Patents
一种存储、查询数据的方法及装置 Download PDFInfo
- Publication number
- CN104657481A CN104657481A CN201510088416.8A CN201510088416A CN104657481A CN 104657481 A CN104657481 A CN 104657481A CN 201510088416 A CN201510088416 A CN 201510088416A CN 104657481 A CN104657481 A CN 104657481A
- Authority
- CN
- China
- Prior art keywords
- data
- character
- hexadecimal
- decimal
- code value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Abstract
本发明公开了一种存储、查询数据的方法及装置,在该方案中,按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与待存储的十进制数据对应的待存储的十六进制数据;确定待存储的十六进制数据以整型存储时的二进制数据,并将二进制数据进行存储,在该方案中,十进制数据先转换为十六进制数据,然后,再将十六进制数据以整型进行存储,而以整型存储时所占的存储空间较以字符串存储时所占的存储空间的小,因此,解决了现有技术中存在的占用存储空间较大、对存储空间利用率较低的缺陷。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种存储、查询数据的方法及装置。
背景技术
随着移动技术的发展,越来越多的人拥有终端。这对于运营商如何管理用户的信息,并根据用户记录来定制各种个性服务带来了巨大的挑战。在所有的用户信息中,最为重要的就是用户所使用的电话号码,目前,一个用户至少会拥有一个电话号码,再加上所需处理的各种固定电话等等,因此,数据库存储系统实际处理的数据量将远远高于实际在网人数,这对数据库的存储能力也带来了挑战,因此,电话号码的存储显得至关重要。
目前,在表示电话号码时不仅会使用0-9中出现的数字,而且还会夹杂使用某些特殊的符号,如“*”、“-”、“+”、“#”(不仅限于此)。因此,在数据库中,这类电话号码通常以字符串的形式进行存储。如:以“+86-13659264876”为例进行说明,+86-13659264876对应的ASCII码分别为:43|56|54|45|49|51|54|53|57|50|54|52|56|55|54,也就是说+86-13659264876以字符串的形式进行存储时,共需要15个字节(共120个比特位)。
从上述可以看出,现有的存储电话号码的方式所需要的存储空间较大,且随着终端的普及,及一个用户可能拥有多个电话号码情况的越来越多的发生,存储电话号码所需要的存储空间的需求越来越大,因此,缓减存储系统的压力,降低存储电话号码所占用的存储空间急需解决。
综上所述,现有的存储电话号码的方案中存在占用存储空间较大、对存储空间利用率较低的缺陷。
发明内容
本发明实施例提供一种存储、查询数据的方法及装置,用以解决现有技术中存在的存储电话号码的方式占用存储空间较大、对存储空间利用率较低的缺陷。
第一方面,提供一种存储数据的方法,包括:
按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与所述待存储的十进制数据对应的待存储的十六进制数据;
确定所述待存储的十六进制数据以整型存储时的二进制数据,并将所述二进制数据进行存储。
结合第一方面,在第一种可能的实现方式中,所述映射关系按照下述过程确定:
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中的英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
结合第一方面,在第二种可能的实现方式中,所述映射关系按照下述过程确定:
从十六进制的1-F字符中选择10个字符;
将十进制的0-9数字字符分别与选择出的10个字符相对应;
将十进制的符号字符分别与十六进制的0-F字符中除选择出的10个字符之外的其他字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同;
任意两个不同的十进制数字字符所对应的十六进制字符的大小关系,与所述任意两个不同的十进制数字字符的大小关系相同。
结合第一方面,在第三种可能的实现方式中,所述映射关系按照下述过程确定:
从十六进制的A-F英文字母字符中任选一个英文字母字符,选择出的英文字母字符用于作为与所述待存储的十进制数据对应的待存储的十六进制数据的首字符;
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中除选择出的英文字母字符外的其他英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
第二方面,提供一种对采用如第一方面至第一方面的第三种可能的实现方式存储的数据进行查询的方法,包括:
确定存储的二进制数据中的各个二进制数据分别对应的码值,任一码值为对应的二进制数据的整数值;
根据确定的各个码值对存储的二进制数据进行查询操作。
结合第二方面,在第一种可能的实现方式中,根据确定的各个码值对存储的二进制数据进行查询操作,具体包括:
按照确定的各个码值的大小,对各个码值分别对应的二进制数据进行排序;
将排序后的各个二进制数据分别转换为十六进制数据,并
按照所述映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
结合第二方面,在第二种可能的实现方式中,根据确定的各个码值对存储的二进制数据进行查询操作,具体包括:
确定预设数据区间的一个端点数据对应的第一码值,并确定另一个端点数据对应的第二码值,所述第一码值小于所述第二码值;
针对所述存储的各个二进制数据中的任意一二进制数据,当所述任意一二进制数据的码值大于等于所述第一码值,且小于等于所述第二码值时,确定所述任意一二进制数据位于所述预设数据区间内;
将位于所述预设数据区间内的各个二进制数据分别转换为十六进制数据;
按照所述映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
结合第二方面,在第三种可能的实现方式中,根据确定的各个码值对存储的二进制数据进行查询操作,具体包括:
确定存储的二进制数据中的各个二进制数据分别对应的第三码值,任意一第三码值为对应的二进制数据的整数值;
根据所述映射关系,确定待查询的十进制数据所对应的十六进制数据,并确定所述十六进制数据以整型存储时的二进制数据,及确定该二进制数据对应的第四码值;
若所述第三码值中存在与所述第四码值相等的第三码值,则确定与所述第四码值相等的第三码值所对应的二进制数据,并将该二进制数据转换为十六进制数据,按照映射关系,将转换后的十六进制数据映射得到的十进制数据作为与所述待查询的十进制数据相等的数据。
第三方面,提供一种存储数据的装置,包括:
替换单元,用于按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与所述待存储的十进制数据对应的待存储的十六进制数据;
确定单元,用于确定所述待存储的十六进制数据以整型存储时的二进制数据;
存储单元,用于将所述二进制数据进行存储。
结合第三方面,在第一种可能的实现方式中,所述映射关系按照下述过程确定:
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中的英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
结合第三方面,在第二种可能的实现方式中,所述映射关系按照下述过程确定:
从十六进制的1-F字符中选择10个字符;
将十进制的0-9数字字符分别与选择出的10个字符相对应;
将十进制的符号字符分别与十六进制的0-F字符中除选择出的10个字符之外的其他字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同;
任意两个不同的十进制数字字符所对应的十六进制字符的大小关系,与所述任意两个不同的十进制数字字符的大小关系相同。
结合第三方面,在第三种可能的实现方式中,所述映射关系按照下述过程确定:
从十六进制的A-F英文字母字符中任选一个英文字母字符,选择出的英文字母字符用于作为与所述待存储的十进制数据对应的待存储的十六进制数据的首字符;
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中除选择出的英文字母字符外的其他英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
第四方面,提供一种对采用如第三方面至第三方面的第三种可能的实现方式存储的数据进行查询的装置,包括:
确定单元,用于确定存储的二进制数据中的各个二进制数据分别对应的码值,任一码值为对应的二进制数据的整数值;
查询单元,用于根据确定的各个码值对存储的二进制数据进行查询操作。
结合第四方面,在第一种可能的实现方式中,所述查询单元具体用于:
按照确定的各个码值的大小,对各个码值分别对应的二进制数据进行排序;
将排序后的各个二进制数据分别转换为十六进制数据,并
按照所述映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
结合第四方面,在第二种可能的实现方式中,所述查询单元具体用于:
确定预设数据区间的一个端点数据对应的第一码值,并确定另一个端点数据对应的第二码值,所述第一码值小于所述第二码值;
针对所述存储的各个二进制数据中的任意一二进制数据,当所述任意一二进制数据的码值大于等于所述第一码值,且小于等于所述第二码值时,确定所述任意一二进制数据位于所述预设数据区间内;
将位于所述预设数据区间内的各个二进制数据分别转换为十六进制数据;
按照所述映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
结合第四方面,在第三种可能的实现方式中,所述查询单元具体用于:
确定存储的二进制数据中的各个二进制数据分别对应的第三码值,任意一第三码值为对应的二进制数据的整数值;
根据所述映射关系,确定待查询的十进制数据所对应的十六进制数据,并确定所述十六进制数据以整型存储时的二进制数据,及确定该二进制数据对应的第四码值;
若所述第三码值中存在与所述第四码值相等的第三码值,则确定与所述第四码值相等的第三码值所对应的二进制数据,并将该二进制数据转换为十六进制数据,按照映射关系,将转换后的十六进制数据映射得到的十进制数据作为与所述待查询的十进制数据相等的数据。
本发明有益效果如下:
本发明实施例中,提出一种存储数据的方法:按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与所述待存储的十进制数据对应的待存储的十六进制数据;确定所述待存储的十六进制数据以整型存储时的二进制数据,并将所述二进制数据进行存储,在该方案中,十进制数据先转换为十六进制数据,然后,再将十六进制数据以整型进行存储,而以整型存储时所占的存储空间较以字符串存储时所占的存储空间的小,因此,解决了现有技术中存在的占用存储空间较大、对存储空间利用率较低的缺陷。
附图说明
图1A为本发明实施例中存储数据的一种流程图;
图1B为本发明实施例中映射关系的一种示意图;
图1C为本发明实施例中映射关系的另一种示意图;
图1D为本发明实施例中映射关系的另一种示意图;
图2为本发明实施例中查询数据的一种流程图;
图3为本发明实施例中存储、查询数据的一种实施例;
图4A为本发明实施例中存储数据的装置的一种功能结构示意图;
图4B为本发明实施例中存储数据的装置的另一种功能结构示意图;
图5A为本发明实施例中查询数据的装置的一种功能结构示意图;
图5B为本发明实施例中查询数据的装置的另一种功能结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字母“/”,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1A所示,本发明实施例中,存储数据的流程如下:
步骤100:按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与待存储的十进制数据对应的待存储的十六进制数据;
步骤110:确定待存储的十六进制数据以整型存储时的二进制数据,并将二进制数据进行存储。
本发明实施例中,可选的,映射关系按照下述过程确定:
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中的英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
例如:十进制的0与十六进制的0对应、十进制的1与十六进制的1对应、十进制的2与十六进制的2对应、……、十进制的9与十六进制的9对应,“*”与十六进制的A对应、“-”与十六进制的B对应、“+”与十六进制的C对应、“#”与十六进制的D对应,如图1B所示。
在数据应用中,有些数据的首字符是“0”,如电话号码:010-62654382,如果按照上述映射关系进行映射的话,会存在准确度较低的缺陷,因此,本发明实施例中,可选的,映射关系还可以按照下述过程确定:
从十六进制的1-F字符中选择10个字符;
将十进制的0-9数字字符分别与选择出的10个字符相对应;
将十进制的符号字符分别与十六进制的0-F字符中除选择出的10个字符之外的其他字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同;
任意两个不同的十进制数字字符所对应的十六进制字符的大小关系,与任意两个不同的十进制数字字符的大小关系相同。
例如:十进制的0与十六进制的1对应、十进制的1与十六进制的2对应、十进制的2与十六进制的3对应、……、十进制的9与十六进制的A对应,“*”与十六进制的B对应、“-”与十六进制的C对应、“+”与十六进制的D对应、“#”与十六进制的0对应,如图1C所示。
又例如:十进制的0与十六进制的2对应、十进制的1与十六进制的3对应、十进制的2与十六进制的4对应、……、十进制的9与十六进制的B对应,“*”与十六进制的C对应、“-”与十六进制的D对应、“+”与十六进制的0对应、“#”与十六进制的1对应,如图1D所示。
上述讲述的是偏移一位,或者偏移两位进行映射,当然,不限于此,还可以偏移多位,只要保证偏移后的任意两个不同的十六进制的大小关系,与对应的不同的十进制数字字符的大小关系相同即可,在此不再进行一一详述。
当然,对于0开头的数据,还可以采用如下方式确定映射关系:
从十六进制的A-F英文字母字符中任选一个英文字母字符,选择出的英文字母字符用于作为与待存储的十进制数据对应的待存储的十六进制数据的首字符;
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中除选择出的英文字母字符外的其他英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
例如:映射关系如图1B所示,此时,十六进制中的英文字母字符“E”、“F”未与十进制字符中的任何字符相对应,可以从E”、“F”中选择一个字符作为以0字符开头的数据的首字符,如010-62654382是以0字符开头的,010-62654382映射为十六进制的电话号码后,再将“F”作为映射后的十六进制的电话号码的首字符。
但是,这种方法会增加字符,会存在增加存储空间的缺陷,因此,对于以0字符开头的数据,优先考虑如下方式:
从十六进制的1-F字符中选择10个字符;
将十进制的0-9数字字符分别与选择出的10个字符相对应;
将十进制的符号字符分别与十六进制的0-F字符中除选择出的10个字符之外的其他字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同;
任意两个不同的十进制数字字符所对应的十六进制字符的大小关系,与任意两个不同的十进制数字字符的大小关系相同。
本发明实施例中,还提出一种对采用如图1A-图1C所示的存储方法存储的数据进行查询的流程,如图2所示:
步骤200:确定存储的二进制数据中的各个二进制数据分别对应的码值,任一码值为对应的二进制数据的整数值;
步骤210:根据确定的各个码值对存储的二进制数据进行查询操作。
这样,在查询操作时,由于不需要一个一个比特位去比较,因此,提高了查询效率。
本发明实施例中,根据确定的各个码值对存储的二进制数据进行查询操作的方式有多种,可选的,可以采用如下方式:
按照确定的各个码值的大小,对各个码值分别对应的二进制数据进行排序;
将排序后的各个二进制数据分别转换为十六进制数据,并
按照映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
排序可以为升序的方式进行排序,也可以是以降序的方式进行排序,此类均为惯用技术手段,在此不再进行一一详述。
例如:待存储的5个十进制的电话号码分别为:+8615210862578、+8613698654125、+2913156875662、+8615625489632、+8613756981125,按照映射关系,映射得到的十六进制的电话号码分别为:A861521086257816、A861369865412516、A291315687566216、A861562548963216、A861375698112516,转换后的十六进制的电话号码以整型存储时的二进制的电话号码分别为:
10101000011000010101001000010000100001100010010101111000
10101000011000010011011010011000011001010100000100100101
10100010100100010011000101010110100001110101011001100010
10101000011000010101011000100101010010001001011000110010
10101000011000010011011101010110100110000001000100100101
上述二进制流的排序结果如下:
10100010100100010011000101010110100001110101011001100010
10101000011000010011011101010110100110000001000100100101
10101000011000010011011010011000011001010100000100100101
10101000011000010101001000010000100001100010010101111000
10101000011000010101011000100101010010001001011000110010
将排序后的二进制的电话号码转换得到的十六进制的电话号码分别为:A861521086257816、A861369865412516、A291315687566216、A861562548963216、A861375698112516,按照映射关系,将转换得到的十六进制的电话号码映射为十进制的电话号码:+2913156875662、+8613698654125、+8613756981125、+8615210862578、+8615625489632。
这样,由于不需要一个一个比特位去比较,因此,提高了排序的效率。
例如:+86-13659264876以字符串形式进行存储的话,共需要120个比特位,而如果使用本发明实施例的方案的话,按照映射关系,+86-13659264876中的每一个字符与十六进制下的‘A’、‘8’、‘6’、‘B’、‘1’、‘3’、‘6’、‘5’、‘9’、‘2’、‘6’、‘4’、‘8’、‘7’、‘6’相对应,我们则直接将其表示成A86B1365926487616这样一个十六进制表示下的整数,而存储这样一个整数需要60个比特位,因此,提高了存储空间的利用率,缓减了存储压力。
上述讲述的是对存储的数据进行排序的查询操作,查询操作还可以包括模糊查询,模糊查询可以用于查询前几位匹配的数据,如,查询前三位为137的电话号码;也可以查询中间几位匹配的数据,如,查询中间第四位至第七位为1234的电话号码,当然,也可以查询末位几位相匹配的数据,如末位几位为2486的电话号码。对于进行查询前几位匹配的模糊查询,在具体实现时,可选的,可以采用如下方式:
确定预设数据区间的一个端点数据对应的第一码值,并确定另一个端点数据对应的第二码值,第一码值小于第二码值;
针对存储的各个二进制数据中的任意一二进制数据,当任意一二进制数据的码值大于等于第一码值,且小于等于第二码值时,确定任意一二进制数据位于预设数据区间内;
将位于预设数据区间内的各个二进制数据分别转换为十六进制数据;
按照映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
例如:电话号码A:18615235618、电话号码B:15210695876,查询这两个电话号码是否为前三位的电话号码时,先确定前三位为186的预设区间的两个端点的码值,即18600000000对应的第一码值,186999999999对应的第二码值,在确定第一码值时,先确定18600000000对应的二进制的电话号码为:11000011000000000000000000000000000000000,该二进制的电话号码为Y1,在确定第二码值时,先确定186999999999对应的二进制的电话号码为:11000011010011001100110011001100110011001,该二进制的电话号码为Y2,在确定电话号码A:18615235618是否属于前三位为186的电话号码时,先确定18615235618对应的二进制的电话号码为:11000011000010101001000110101011000011000,查看该二进制的电话号码对应的码值是否属于Y1至Y2的区间,如果属于,则说明电话号码A为前三位为186的电话号码,如果不属于,则说明电话号码A不是前三位为186的电话号码;同理,在确定电话号码B:15210695876是否属于前三位为186的电话号码时,先确定15210695876对应的二进制的电话号码为:10101001000010000011010010101100001110110,查看该二进制的电话号码对应的码值是否属于Y1至Y2的区间,如果属于,则说明电话号码B为前三位为186的电话号码,如果不属于,则说明电话号码B不是前三位为186的电话号码。
在实际应用中,查询操作还包括等值比较,也就是说,本发明实施例中,根据确定的各个码值对存储的二进制数据进行查询操作时,可选的,还可以采用如下方式:
确定存储的二进制数据中的各个二进制数据分别对应的第三码值,任意一第三码值为对应的二进制数据的整数值;
根据映射关系,确定待查询的十进制数据所对应的十六进制数据,并确定十六进制数据以整型存储时的二进制数据,及确定该二进制数据对应的第四码值;
若第三码值中存在与第四码值相等的第三码值,则确定与第四码值相等的第三码值所对应的二进制数据,并将该二进制数据转换为十六进制数据,按照映射关系,将转换后的十六进制数据映射得到的十进制数据作为与待查询的十进制数据相等的数据。
当然,在实际应用中,查询操作不限于上述三种实施方式,但是由于存储数据所占的存储空间降低了,进而执行查询操作时所操作的比特位也比较少了,因此,可以提高查询效率。
上述讲述的是将十进制的数据映射为十六进制的数据后,再进行整型存储,当然,如果十六进制的数据仍然满足不了十进制的映射需求的话,也可以是十进制的数据映射为三十二进制的数据后,再进行整型存储,甚至,也可以是十进制的数据映射为六十四进制的数据后,再进行整型存储,映射过程,及映射后以整型存储的过程与上述十进制的数据映射为十六进制的数据,并以整型存储的过程类似,在此不再进行一一详述。
如图3所示,为了更好地理解本发明实施例,以下给出具体应用场景,针对存储、查询数据的过程,做出进一步详细描述:
步骤300:按照图1B所示的方式确定映射关系;
步骤310:针对每一个待存储的十进制数据,根据映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与待存储的十进制数据对应的待存储的十六进制数据;
步骤320:确定待存储的十六进制数据以整型存储时的二进制数据,并将二进制数据进行存储;
步骤330:确定存储的各个二进制数据分别所对应的码值,任一码值为对应的二进制数据的整数值;
步骤340:按照确定的各个码值的大小,对各个码值分别对应的二进制数据进行排序;
步骤350:将排序后的各个二进制数据分别转换为十六进制数据;
步骤360:按照映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
基于上述相应方法的技术方案,参阅图4A所示,本发明实施例提供一种存储数据的装置,该存储数据的装置包括替换单元40、确定单元41,及存储单元42,其中:
替换单元40,用于按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与待存储的十进制数据对应的待存储的十六进制数据;
确定单元41,用于确定待存储的十六进制数据以整型存储时的二进制数据;
存储单元42,用于将二进制数据进行存储。
本发明实施例中,可选的,映射关系按照下述过程确定:
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中的英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
本发明实施例中,可选的,映射关系按照下述过程确定:
从十六进制的1-F字符中选择10个字符;
将十进制的0-9数字字符分别与选择出的10个字符相对应;
将十进制的符号字符分别与十六进制的0-F字符中除选择出的10个字符之外的其他字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同;
任意两个不同的十进制数字字符所对应的十六进制字符的大小关系,与任意两个不同的十进制数字字符的大小关系相同。
本发明实施例中,可选的,映射关系按照下述过程确定:
从十六进制的A-F英文字母字符中任选一个英文字母字符,选择出的英文字母字符用于作为与待存储的十进制数据对应的待存储的十六进制数据的首字符;
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中除选择出的英文字母字符外的其他英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
如图4B所示,为本发明实施例提供的存储数据的装置的另一种结构示意图,包括至少一个处理器401,通信总线402,存储器403以及至少一个通信接口404。
其中,通信总线402用于实现上述组件之间的连接并通信,通信接口404用于与外部设备连接并通信。
其中,存储器403用于存储有可执行的程序代码,处理器401通过执行这些程序代码,以用于:
按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与待存储的十进制数据对应的待存储的十六进制数据;
确定待存储的十六进制数据以整型存储时的二进制数据,并将二进制数据进行存储。
基于上述相应方法的技术方案,参阅图5A所示,本发明实施例提供一种查询数据的装置,该查询数据的装置包括确定单元50、查询单元51,其中:
确定单元50,用于确定存储的二进制数据中的各个二进制数据分别对应的码值,任一码值为对应的二进制数据的整数值;
查询单元51,用于根据确定的各个码值对存储的二进制数据进行查询操作。
本发明实施例中,可选的,查询单元51具体用于:
按照确定的各个码值的大小,对各个码值分别对应的二进制数据进行排序;
将排序后的各个二进制数据分别转换为十六进制数据,并
按照映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
本发明实施例中,可选的,查询单元51具体用于:
确定预设数据区间的一个端点数据对应的第一码值,并确定另一个端点数据对应的第二码值,第一码值小于第二码值;
针对存储的各个二进制数据中的任意一二进制数据,当任意一二进制数据的码值大于等于第一码值,且小于等于第二码值时,确定任意一二进制数据位于预设数据区间内;
将位于预设数据区间内的各个二进制数据分别转换为十六进制数据;
按照映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
本发明实施例中,可选的,查询单元51具体用于:
确定存储的二进制数据中的各个二进制数据分别对应的第三码值,任意一第三码值为对应的二进制数据的整数值;
根据映射关系,确定待查询的十进制数据所对应的十六进制数据,并确定十六进制数据以整型存储时的二进制数据,及确定该二进制数据对应的第四码值;
若第三码值中存在与第四码值相等的第三码值,则确定与第四码值相等的第三码值所对应的二进制数据,并将该二进制数据转换为十六进制数据,按照映射关系,将转换后的十六进制数据映射得到的十进制数据作为与待查询的十进制数据相等的数据。
如图5B所示,为本发明实施例提供的存储数据的装置的另一种结构示意图,包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。
其中,通信总线502用于实现上述组件之间的连接并通信,通信接口504用于与外部设备连接并通信。
其中,存储器503用于存储有可执行的程序代码,处理器501通过执行这些程序代码,以用于:
确定存储的二进制数据中的各个二进制数据分别对应的码值,任一码值为对应的二进制数据的整数值;
根据确定的各个码值对存储的二进制数据进行查询操作。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种存储数据的方法,其特征在于,包括:
按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与所述待存储的十进制数据对应的待存储的十六进制数据;
确定所述待存储的十六进制数据以整型存储时的二进制数据,并将所述二进制数据进行存储。
2.如权利要求1所述的方法,其特征在于,所述映射关系按照下述过程确定:
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中的英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
3.如权利要求1所述的方法,其特征在于,所述映射关系按照下述过程确定:
从十六进制的1-F字符中选择10个字符;
将十进制的0-9数字字符分别与选择出的10个字符相对应;
将十进制的符号字符分别与十六进制的0-F字符中除选择出的10个字符之外的其他字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同;
任意两个不同的十进制数字字符所对应的十六进制字符的大小关系,与所述任意两个不同的十进制数字字符的大小关系相同。
4.如权利要求1所述的方法,其特征在于,所述映射关系按照下述过程确定:
从十六进制的A-F英文字母字符中任选一个英文字母字符,选择出的英文字母字符用于作为与所述待存储的十进制数据对应的待存储的十六进制数据的首字符;
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中除选择出的英文字母字符外的其他英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
5.一种对采用如权利要求1-4任一所述的方法存储的数据进行查询的方法,其特征在于,包括:
确定存储的二进制数据中的各个二进制数据分别对应的码值,任一码值为对应的二进制数据的整数值;
根据确定的各个码值对存储的二进制数据进行查询操作。
6.如权利要求5所述的方法,其特征在于,根据确定的各个码值对存储的二进制数据进行查询操作,具体包括:
按照确定的各个码值的大小,对各个码值分别对应的二进制数据进行排序;
将排序后的各个二进制数据分别转换为十六进制数据,并
按照所述映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
7.如权利要求5所述的方法,其特征在于,根据确定的各个码值对存储的二进制数据进行查询操作,具体包括:
确定预设数据区间的一个端点数据对应的第一码值,并确定另一个端点数据对应的第二码值,所述第一码值小于所述第二码值;
针对所述存储的各个二进制数据中的任意一二进制数据,当所述任意一二进制数据的码值大于等于所述第一码值,且小于等于所述第二码值时,确定所述任意一二进制数据位于所述预设数据区间内;
将位于所述预设数据区间内的各个二进制数据分别转换为十六进制数据;
按照所述映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
8.如权利要求5所述的方法,其特征在于,根据确定的各个码值对存储的二进制数据进行查询操作,具体包括:
确定存储的二进制数据中的各个二进制数据分别对应的第三码值,任意一第三码值为对应的二进制数据的整数值;
根据所述映射关系,确定待查询的十进制数据所对应的十六进制数据,并确定所述十六进制数据以整型存储时的二进制数据,及确定该二进制数据对应的第四码值;
若所述第三码值中存在与所述第四码值相等的第三码值,则确定与所述第四码值相等的第三码值所对应的二进制数据,并将该二进制数据转换为十六进制数据,按照映射关系,将转换后的十六进制数据映射得到的十进制数据作为与所述待查询的十进制数据相等的数据。
9.一种存储数据的装置,其特征在于,包括:
替换单元,用于按照预设的每一个十进制字符与十六进制字符的映射关系,分别使用对应的十六进制字符替换待存储的十进制数据中的每一个十进制字符,得到与所述待存储的十进制数据对应的待存储的十六进制数据;
确定单元,用于确定所述待存储的十六进制数据以整型存储时的二进制数据;
存储单元,用于将所述二进制数据进行存储。
10.如权利要求9所述的装置,其特征在于,所述映射关系按照下述过程确定:
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中的英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
11.如权利要求9所述的装置,其特征在于,所述映射关系按照下述过程确定:
从十六进制的1-F字符中选择10个字符;
将十进制的0-9数字字符分别与选择出的10个字符相对应;
将十进制的符号字符分别与十六进制的0-F字符中除选择出的10个字符之外的其他字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同;
任意两个不同的十进制数字字符所对应的十六进制字符的大小关系,与所述任意两个不同的十进制数字字符的大小关系相同。
12.如权利要求9所述的装置,其特征在于,所述映射关系按照下述过程确定:
从十六进制的A-F英文字母字符中任选一个英文字母字符,选择出的英文字母字符用于作为与所述待存储的十进制数据对应的待存储的十六进制数据的首字符;
将十进制的0-9数字字符分别与十六进制的0-9数字字符相对应;
将十进制的符号字符分别与十六进制的A-F中除选择出的英文字母字符外的其他英文字母字符相对应;
其中,任意一个十进制字符与一个十六进制字符相对应,且任意两个不同的十进制字符分别对应的十六进制字符均不相同。
13.一种对采用如权利要求9-12任一所述的装置存储的数据进行查询的装置,其特征在于,包括:
确定单元,用于确定存储的二进制数据中的各个二进制数据分别对应的码值,任一码值为对应的二进制数据的整数值;
查询单元,用于根据确定的各个码值对存储的二进制数据进行查询操作。
14.如权利要求13所述的装置,其特征在于,所述查询单元具体用于:
按照确定的各个码值的大小,对各个码值分别对应的二进制数据进行排序;
将排序后的各个二进制数据分别转换为十六进制数据,并
按照所述映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
15.如权利要求13所述的装置,其特征在于,所述查询单元具体用于:
确定预设数据区间的一个端点数据对应的第一码值,并确定另一个端点数据对应的第二码值,所述第一码值小于所述第二码值;
针对所述存储的各个二进制数据中的任意一二进制数据,当所述任意一二进制数据的码值大于等于所述第一码值,且小于等于所述第二码值时,确定所述任意一二进制数据位于所述预设数据区间内;
将位于所述预设数据区间内的各个二进制数据分别转换为十六进制数据;
按照所述映射关系,将转换后的各个十六进制数据映射为十进制数据进行呈现。
16.如权利要求13所述的装置,其特征在于,所述查询单元具体用于:
确定存储的二进制数据中的各个二进制数据分别对应的第三码值,任意一第三码值为对应的二进制数据的整数值;
根据所述映射关系,确定待查询的十进制数据所对应的十六进制数据,并确定所述十六进制数据以整型存储时的二进制数据,及确定该二进制数据对应的第四码值;
若所述第三码值中存在与所述第四码值相等的第三码值,则确定与所述第四码值相等的第三码值所对应的二进制数据,并将该二进制数据转换为十六进制数据,按照映射关系,将转换后的十六进制数据映射得到的十进制数据作为与所述待查询的十进制数据相等的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510088416.8A CN104657481B (zh) | 2015-02-26 | 2015-02-26 | 一种存储、查询数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510088416.8A CN104657481B (zh) | 2015-02-26 | 2015-02-26 | 一种存储、查询数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657481A true CN104657481A (zh) | 2015-05-27 |
CN104657481B CN104657481B (zh) | 2018-05-04 |
Family
ID=53248608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510088416.8A Active CN104657481B (zh) | 2015-02-26 | 2015-02-26 | 一种存储、查询数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657481B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469330A (zh) * | 2016-09-06 | 2017-03-01 | 北京三快在线科技有限公司 | 信息查找方法、信息存储方法及装置 |
CN106559083A (zh) * | 2016-11-01 | 2017-04-05 | 惠州Tcl移动通信有限公司 | 一种移动终端对特定数据进行压缩的方法及系统 |
CN111026926A (zh) * | 2019-12-17 | 2020-04-17 | 腾讯音乐娱乐科技(深圳)有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN112364368A (zh) * | 2020-12-02 | 2021-02-12 | 四川长虹电器股份有限公司 | 一种电话号码加密存储方法 |
CN112395468A (zh) * | 2020-11-27 | 2021-02-23 | 浙江诺诺网络科技有限公司 | 一种号码管理方法、装置及电子设备和存储介质 |
CN114115740A (zh) * | 2021-11-26 | 2022-03-01 | 百度在线网络技术(北京)有限公司 | 数据存储方法及装置、数据获取方法及装置、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483844A (zh) * | 2009-02-12 | 2009-07-15 | 北京阳光加信科技有限公司 | 索引移动电话号码的方法和系统 |
US8171037B1 (en) * | 2006-08-01 | 2012-05-01 | United Services Automobile Association (Usaa) | System and method for reference number expansion |
CN103345469A (zh) * | 2013-05-24 | 2013-10-09 | 联动优势科技有限公司 | 号码集合的存储、查询方法及其装置 |
-
2015
- 2015-02-26 CN CN201510088416.8A patent/CN104657481B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171037B1 (en) * | 2006-08-01 | 2012-05-01 | United Services Automobile Association (Usaa) | System and method for reference number expansion |
CN101483844A (zh) * | 2009-02-12 | 2009-07-15 | 北京阳光加信科技有限公司 | 索引移动电话号码的方法和系统 |
CN103345469A (zh) * | 2013-05-24 | 2013-10-09 | 联动优势科技有限公司 | 号码集合的存储、查询方法及其装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469330A (zh) * | 2016-09-06 | 2017-03-01 | 北京三快在线科技有限公司 | 信息查找方法、信息存储方法及装置 |
CN106559083A (zh) * | 2016-11-01 | 2017-04-05 | 惠州Tcl移动通信有限公司 | 一种移动终端对特定数据进行压缩的方法及系统 |
CN106559083B (zh) * | 2016-11-01 | 2020-06-09 | 惠州Tcl移动通信有限公司 | 一种移动终端对特定数据进行压缩的方法及系统 |
CN111026926A (zh) * | 2019-12-17 | 2020-04-17 | 腾讯音乐娱乐科技(深圳)有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN112395468A (zh) * | 2020-11-27 | 2021-02-23 | 浙江诺诺网络科技有限公司 | 一种号码管理方法、装置及电子设备和存储介质 |
CN112364368A (zh) * | 2020-12-02 | 2021-02-12 | 四川长虹电器股份有限公司 | 一种电话号码加密存储方法 |
CN114115740A (zh) * | 2021-11-26 | 2022-03-01 | 百度在线网络技术(北京)有限公司 | 数据存储方法及装置、数据获取方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104657481B (zh) | 2018-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657481A (zh) | 一种存储、查询数据的方法及装置 | |
CN104579360B (zh) | 一种数据处理的方法和设备 | |
CN104317795A (zh) | 一种二维过滤器的生成方法、查询方法及装置 | |
EP3832493A1 (en) | Method, apparatus, electronic device and readable storage medium for data query | |
CN110263043A (zh) | 数据存储方法、数据查询方法、装置及存储介质 | |
CN110825323B (zh) | 浮点数数据的存储、读取方法和计算机可读存储介质 | |
CN111259107B (zh) | 行列式文本的存储方法、装置以及电子设备 | |
CN111159492A (zh) | 一种轨迹点检索方法、装置、存储介质及终端 | |
CN103297554B (zh) | IPv4和IPv6兼容处理的方法及装置 | |
CN105956921A (zh) | 一种银行卡号自选方法及装置 | |
CN110489466A (zh) | 邀请码的生成方法、装置、终端设备及存储介质 | |
CN112506880A (zh) | 数据处理方法及相关设备 | |
CN104572994B (zh) | 用于搜索数据的方法和装置 | |
CN112543103A (zh) | 账户地址的生成方法和校验方法、装置、设备和介质 | |
CN113343042A (zh) | 数据分片存储方法、装置、电子设备及存储介质 | |
CN116610731B (zh) | 一种大数据分布式存储方法、装置、电子设备及存储介质 | |
CN110266834B (zh) | 基于互联网协议地址的地区查找方法及装置 | |
CN111845386B (zh) | 电动单车的充电处理方法和控制设备 | |
CN107580015A (zh) | 数据处理方法和装置、服务器 | |
CN113986931B (zh) | 报表分页的方法、装置、存储介质及计算设备 | |
CN112598139B (zh) | 类别编码方法、装置、设备、存储介质及程序产品 | |
CN112417326A (zh) | Url的转换方法和装置、电子设备和存储介质 | |
CN106027369A (zh) | 一种面向邮件地址特征的邮件地址匹配方法 | |
CN109558387A (zh) | 身份证号的处理方法、装置、存储介质及终端 | |
CN109033189A (zh) | 链路结构日志的压缩方法、装置、服务器及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |