首页 / 专利库 / 专利权 / 第I章 / 国际检索单位 / 国际检索 / 现有技术 / 一种全局唯一标识符GUID生成方法及装置

一种全局唯一标识符GUID生成方法及装置

阅读:1发布:2020-07-04

专利汇可以提供一种全局唯一标识符GUID生成方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种全局唯一标识符GUID生成方法及装置,该方法包括:获取待标记对象的 位置 坐标,根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值,将所述二进制长度小于128位的数值,作为所述GUID,其中,由于GUID的二进制长度小于128位,小于 现有技术 中的GUID的二进制的长度,因此,缩短了现有技术中GUID的二进制长度,减小了占用空间。,下面是一种全局唯一标识符GUID生成方法及装置专利的具体信息内容。

1.一种全局唯一标识符GUID生成方法,其特征在于,所述方法包括:
获取待标记对象的位置坐标;
根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值;
将所述二进制长度小于128位的数值,作为所述GUID。
2.如权利要求1所述的方法,其特征在于,所述位置坐标中的各维度数据,分别为经度和纬度。
3.如权利要求2所述的方法,其特征在于,根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值,具体包括:
根据所述经度和所述纬度,获取所述经度中的度、分、秒分别对应的第一数值、第二数值和第三数值,并获取所述纬度中的度、分、秒分别对应的第四数值、第五数值和第六数值;
根据第一公式,计算出第七数值,其中,所述第七数值对应的二进制长度为16位;
根据第二公式,计算出第八数值,其中,所述第八数值对应的二进制长度为24位;
将所述第七数值排列在所述第八数值前面得到的数值,作为所述二进制长度小于128位的数值;
其中,所述第一公式为:第七数值=第一数值*180+第四数值;
所述第二公式为:第八数值=第二数值<<18|第三数值<<12|第五数值<<16|第六数值&
0x00FFFFFF。
4.如权利要求1所述的方法,其特征在于,将所述二进制长度小于128位的数值,作为所述GUID之后,所述方法包括:
将所述GUID解析为位置坐标。
5.一种GUID生成装置,其特征在于,所述装置包括:
获取模,用于获取待标记对象的位置坐标;
转化模块,用于根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值;
确定模块,用于将所述二进制长度小于128位的数值,作为所述GUID。
6.如权利要求5所述的装置,其特征在于,所述位置坐标中的各维度数据,分别为经度和纬度。
7.如权利要求6所述的装置,其特征在于,所述转化模块,具体用于:
根据所述经度和所述纬度,获取所述经度中的度、分、秒分别对应的第一数值、第二数值和第三数值,并获取所述纬度中的度、分、秒分别对应的第四数值、第五数值和第六数值;
根据第一公式,计算出第七数值,其中,所述第七数值对应的二进制长度为16位;
根据第二公式,计算出第八数值,其中,所述第八数值对应的二进制长度为24位;
将所述第七数值排列在所述第八数值前面得到的数值,作为所述二进制长度小于128位的数值;
其中,所述第一公式为:第七数值=第一数值*180+第四数值;
所述第二公式为:第八数值=第二数值<<18|第三数值<<12|第五数值<<16|第六数值&
0x00FFFFFF。
8.如权利要求5所述的装置,其特征在于,所述装置还包括解析模块,用于:
在所述确定模块将所述二进制长度小于128位的数值,作为所述GUID之后,将所述GUID解析为位置坐标。

说明书全文

一种全局唯一标识符GUID生成方法及装置

技术领域

[0001] 本发明涉及通信技术领域,具体涉及一种全局唯一标识符GUID生成方法及装置。

背景技术

[0002] 全局唯一标识符(Globally Unique Identifier,GUID),是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。主要可以用于在拥有多个节点、多台计算机的网络或系统中,让分布式系统中的所有元素,都能有唯一的辨识资讯。
[0003] 但是,现有技术中,GUID二进制长度较长,占用空间较大。

发明内容

[0004] 本发明的目的在于提供一种GUID生成方法及装置,用以解决现有技术中的GUID二进制长度较长,占用空间较大的问题。
[0005] 为实现上述目的,本发明的技术方案为:
[0006] 第一,本发明提供一种GUID生成方法,所述方法包括:
[0007] 获取待标记对象的位置坐标;
[0008] 根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值;
[0009] 将所述二进制长度小于128位的数值,作为所述GUID。
[0010] 进一步的,所述位置坐标中的各维度数据,分别为经度和纬度。
[0011] 进一步的,根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值,具体包括:
[0012] 根据所述经度和所述纬度,获取所述经度中的度、分、秒分别对应的第一数值、第二数值和第三数值,并获取所述纬度中的度、分、秒分别对应的第四数值、第五数值和第六数值;
[0013] 根据第一公式,计算出第七数值,其中,所述第七数值对应的二进制长度为16位;
[0014] 根据第二公式,计算出第八数值,其中,所述第八数值对应的二进制长度为24位;
[0015] 将所述第七数值排列在所述第八数值前面得到的数值,作为所述二进制长度小于128位的数值;
[0016] 其中,所述第一公式为:第七数值=第一数值*180+第四数值;
[0017] 所述第二公式为:第八数值=第二数值<<18|第三数值<<12|第五数值<<16|第六数值&0x00FFFFFF。
[0018] 进一步的,将所述二进制长度小于128位的数值,作为所述GUID之后,所述方法包括:
[0019] 将所述GUID解析为位置坐标。
[0020] 第二,本发明提供一种GUID生成装置,所述装置包括
[0021] 获取模,用于获取待标记对象的位置坐标;
[0022] 转化模块,用于根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值;
[0023] 确定模块,用于将所述二进制长度小于128位的数值,作为所述GUID。
[0024] 进一步的,所述位置坐标中的各维度数据,分别为经度和纬度。
[0025] 进一步的,所述转化模块,具体用于:
[0026] 根据所述经度和所述纬度,获取所述经度中的度、分、秒分别对应的第一数值、第二数值和第三数值,并获取所述纬度中的度、分、秒分别对应的第四数值、第五数值和第六数值;
[0027] 根据第一公式,计算出第七数值,其中,所述第七数值对应的二进制长度为16位;
[0028] 根据第二公式,计算出第八数值,其中,所述第八数值对应的二进制长度为24位;
[0029] 将所述第七数值排列在所述第八数值前面得到的数值,作为所述二进制长度小于128位的数值;
[0030] 其中,所述第一公式为:第七数值=第一数值*180+第四数值;
[0031] 所述第二公式为:第八数值=第二数值<<18|第三数值<<12|第五数值<<16|第六数值&0x00FFFFFF。
[0032] 进一步的,所述装置还包括解析模块,用于:
[0033] 在所述确定模块将所述二进制长度小于128位的数值,作为所述GUID之后,将所述GUID解析为位置坐标。
[0034] 本发明具有如下优点:
[0035] 通过获取待标记对象的位置坐标,根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值,将所述二进制长度小于128位的数值,作为所述GUID,其中,由于GUID的二进制长度小于128位,小于现有技术中的GUID的二进制的长度,因此,缩短了现有技术中GUID的二进制长度,减小了占用空间。附图说明
[0036] 图1为本发明提供的一种GUID生成方法的流程示意图;
[0037] 图2为本发明提供的一种具体的GUID生成方法的流程示意图;
[0038] 图3为本发明提供的一种GUID生成装置的结构示意图。

具体实施方式

[0039] 以下实施例用于说明本发明,但不用来限制本发明的范围。
[0040] 实施例1
[0041] 为了解决现有技术中的GUID二进制长度较长,占用空间较大的问题,本发明实施例1提供一种GUID生成方法,该方法的流程示意图可参见图1,该方法包括下述步骤:
[0042] 步骤101,获取待标记对象的位置坐标。
[0043] 步骤102,根据预设规则,将位置坐标,转化为二进制长度小于128位的数值。
[0044] 步骤103,将二进制长度小于128位的数值,作为GUID。
[0045] 上述位置坐标中的各维度数据,分别可以为经度和纬度。若待标记对象是虚拟的,非实体,则可将某一虚拟系统中的所有待标记对象,赋予不重复的位置坐标。
[0046] 若上述位置坐标中的各维度数据,分别为经度和纬度,则根据预设规则,将位置坐标,转化为二进制长度小于128位的数值的实现方式如下:
[0047] (1)根据经度和纬度,获取经度中的度、分、秒分别对应的第一数值、第二数值和第三数值,并获取纬度中的度、分、秒分别对应的第四数值、第五数值和第六数值。
[0048] 其中,由于东经和西经可能存在数值相同的情况,南纬和北纬可能存在数值相同的情况,为了区别开来,可以事先设定,东经在度这一精度上的取值范围为0~180度,西经在度这一精度上的取值范围为181~360度,或者,东经在度这一精度上的取值范围为181~360度,西经在度这一精度上的取值范围为0~180度;南纬在度这一精度上的取值范围为0~90度,北纬在度这一精度上的取值范围为91~180度,或者,南纬在度这一精度上的取值范围为91~180度,北纬在度这一精度上的取值范围为0~90度。
[0049] (2)根据第一公式,计算出第七数值,其中,第七数值对应的二进制长度为16位。
[0050] 其中,第一公式为:第七数值=第一数值*180+第四数值。
[0051] (3)根据第二公式,计算出第八数值,其中,第八数值对应的二进制长度为24位。
[0052] 第二公式为:第八数值=第二数值<<18|第三数值<<12|第五数值<<16|第六数值&0x00FFFFFF。
[0053] (4)将第七数值排列在第八数值前面得到的数值,作为二进制长度小于128位的数值。
[0054] 综上,最终得到的二进制长度小于128位的数值,二进制长度为40位。
[0055] 在执行步骤103之后,可根据GUID获取到待标记对象所在的位置坐标,即可以将GUID解析为位置坐标。若位置坐标中的各维度数据,分别为经度和纬度,则可采用下述方法解析:
[0056] (1)根据第三公式,获取第一数值,其中,第三公式为:第一数值=[第七数值/180]。
[0057] (2)根据第四公式,获取第三数值,其中,第四公式为:第四数值=第七数值%180。
[0058] (3)根据第五公式,获取第二数值,其中,第五公式为:第二数值=(第八数值&0xFC0000)>>18。
[0059] (4)根据第六公式,获取第四数值,其中,第六公式为:第三数值=(第八数值&0x3F000)>>12。
[0060] (5)根据第七公式,获取第五数值,其中,第七公式为:第五数值=(第八数值&0xFC0)>>6。
[0061] (6)根据第八公式,获取第三数值,其中,第八公式为:第六数值=第八数值&0x3F。
[0062] 其中,根据第一数值~第三数值,便可获取到经度,根据第四数值~第六数值,便可获取到纬度。
[0063] 本发明实施例1中,需要说明的是,GUID的总数是2^40个,GUID的产生是非随机的,和待标记对象的位置坐标有关,因为空间不能重叠,在一定的精度要求下,可保证GUID具备唯一性。
[0064] GUID分为两部分,第一部分和第二部分,第一部分便为上文中提及的第七数值,第二部分便为上文中提及的第八数值,GUID的格式可以为:第一部分-第二部分,其中,若GUID用十六进制来表示,则上述格式可表示为XXXX-XXXXX,那么每个X可以是0~9,或a~f范围内的一个十六进制的数字。
[0065] GUID的第一部分,是由经度的度和纬度的度分别对应的数值生成的,用户可以根据实际需求,确定是否仅仅只计算第一部分,将第一部分确定为GUID。
[0066] GUID的第二部分,是有经度和纬度的分、秒分别对应的数值生成的,用户可根据实际需求,确定使用精度是否精确到秒或者更小。若用户想要将经度提高到微秒或毫秒,那么,可以用上文提及的算法,来计算出GUID,此处不再进行赘述,只不过最终得到的GUID的二进制长度会大于40,但是依然小于128。
[0067] 其中,可将上述第一部分称为主码,将上述第二部分称为次码。那么,上述GUID的格式可以为主码-次码。主码对应的经纬度中的度的数值,用于粗略定位待标记对象的位置,次码对应的经纬度中的分、秒的数值,用于精确定位待标记对象的位置,若对待标记对象的位置要求不精确,可获取精度到度的经纬度,以主码作为GUID;若对待标记对象的位置要求精确,可以获取精度到秒的经纬度,以主码-次码作为GUID。
[0068] GUID的范围为[0x0000000000,0xFD1FEFBEFB]。
[0069] 二进制长度为40位的最大数值为0xFFFFFFFFFF,GUID的保留值位于(0xFD1FEFBEFB,0xFFFFFFFFFF)之间,用户可以根据实际情况进行设置。
[0070] 另外,本发明实施例1中,位置坐标除了可以为经度和纬度外,还可以是其他任意类型的物理坐标,生成方法参见上文提及的方法,这里不再赘述,其中,需要说明的是,上述其他任意类型的物理坐标,可能不具有唯一性,所以生成的位局部的GIUD,用于在某一系统中进行标识使用。
[0071] 通过获取待标记对象的位置坐标,根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值,将所述二进制长度小于128位的数值,作为所述GUID,其中,由于GUID的二进制长度小于128位,小于现有技术中的GUID的二进制的长度,因此,缩短了现有技术中GUID的二进制长度,减小了占用空间。
[0072] 另外,现有技术中,生成GUID的算法比较复杂,一般在电脑端上使用,并且因为使用了时钟计数,还要求使用GUID的设备具有一定精度的时钟系统,限制了现有技术中的生成GUID的算法的使用范围。现有技术中,不同的操作系统,产生的GUID是不同的,无法统一使用,只能在某一系统中使用。然而,本发明实施例1中提供的GUID生成方法,使用的仅仅为较为简单的运算,对设备没要求,适用范围较广。且,本发明实施例1提供的GUID生成方法所生成的GUID,可适用于任何操作系统。
[0073] 再者,现有技术中的GUID,仅仅用于唯一标识待标记的对象,除此便无其他含义,而本发明实施例1中提供的GUID生成方法生成的GUID,除了可唯一标识待标记对象外,还可表示该待标记对象的地理位置信息。
[0074] 实施例2
[0075] 本发明实施例2提供一种具体的GUID生成方法,该方法的流程示意图可参见图2,该方法包括下述步骤:
[0076] 步骤201,获取待标记对象的经度和纬度。
[0077] 其中,经度为100度10分5秒,纬度为10度7分9秒。
[0078] 步骤202,根据第一公式计算第七数值,根据第二公式计算第八数值。
[0079] 步骤203,将第七数值排列在第八数值前面得到的数值作为GUID。
[0080] 沿用上例,则第一数值~第七数值分别为100、10、5、10、7及9。那么,第七数值=100*180+10=18001,第七数值对应的二进制数值为01000110 0101 0001,第七数值对应的二进制长度为16位;第八数值=10<<18|5<<12|7<<6|9&0x00FFFFFF=2642377,第八数值对应的二进制数值为0010 1000 0101 0001 1100 1001,第八数值对应的二进制长度为24位。
将第七数值排在第八数值的前面得到的数值180012642377,作为二进制长度小于128位的数值,即GUID。
[0081] 在一种实施场景中,GUID的格式可以为:第七数值-第八数值,那么沿用上例,GUID可以为18001-2642377,若用二进制来表示,则可以为0100 0110 0101 0001-0010 1000 0101 0001 1100 1001,若用十六进制来表示,则可以为4651-2851C9,其中4651是18001对应的十六进制数值,2851C9是2642377对应的十六进制数值。
[0082] 通过获取待标记对象的位置坐标,根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值,将所述二进制长度小于128位的数值,作为所述GUID,其中,由于GUID的二进制长度小于128位,小于现有技术中的GUID的二进制的长度,因此,缩短了现有技术中GUID的二进制长度,减小了占用空间。
[0083] 实施例3
[0084] 本发明实施例3提供一种GUID生成装置,该装置的结构示意图可参见图3,该装置包括:
[0085] 获取模块301,用于获取待标记对象的位置坐标。
[0086] 转化模块302,用于根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值。
[0087] 确定模块303,用于将所述二进制长度小于128位的数值,作为所述GUID。
[0088] 在一种实施场景中,所述位置坐标中的各维度数据,分别为经度和纬度。
[0089] 在一种实施场景中,所述转化模块302,具体用于:
[0090] 根据所述经度和所述纬度,获取所述经度中的度、分、秒分别对应的第一数值、第二数值和第三数值,并获取所述纬度中的度、分、秒分别对应的第四数值、第五数值和第六数值;
[0091] 根据第一公式,计算出第七数值,其中,所述第七数值对应的二进制长度为16位;
[0092] 根据第二公式,计算出第八数值,其中,所述第八数值对应的二进制长度为24位;
[0093] 将所述第七数值排列在所述第八数值前面得到的数值,作为所述二进制长度小于128位的数值;
[0094] 其中,所述第一公式为:第七数值=第一数值*180+第四数值;
[0095] 所述第二公式为:第八数值=第二数值<<18|第三数值<<12|第五数值<<16|第六数值&0x00FFFFFF。
[0096] 在一种实施场景中,所述装置还包括解析模块,用于:
[0097] 在所述确定模块将所述二进制长度小于128位的数值,作为所述GUID之后,将所述GUID解析为位置坐标。
[0098] 通过获取待标记对象的位置坐标,根据预设规则,将所述位置坐标,转化为二进制长度小于128位的数值,将所述二进制长度小于128位的数值,作为所述GUID,其中,由于GUID的二进制长度小于128位,小于现有技术中的GUID的二进制的长度,因此,缩短了现有技术中GUID的二进制长度,减小了占用空间。
[0099] 需要说明的是,实施例1~3中提及的各技术特征可自由组合,本发明对此不进行任何限定。
[0100] 虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈