论坛首页 Java企业应用论坛

由UUID和短域名想到的

浏览 12354 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-26  
UUID,标准的有36位,格式如:1838efee-893d-3778-b480-43d6457767ea,是用16进制表示的。
短域名,如http://url.cn/1zJdGX,一个地址最后是转换成“1zJdGX”,是用62进制表示的。

62进制包括“0-9,a-z,A-Z”62个数字和字母。

UUID很大的一个缺点就是:长!
UUID可以把中间的“-”都去掉,也有32位。

我是想把32位的UUID,转换成还不知道有多少位的62进制表示。这样应该会短不少。

有兴趣的可以讨论一下,可行性和实用性。
   发表时间:2011-04-26  
62多蛋疼啊,加两个字符凑64算了,比如 - _

另外,0123456789abcdef是数学定义的,大家都用
那你的这套方案,定义出来也只能是自娱自乐吧
0 请登录后投票
   发表时间:2011-04-26  
wolf_awp 写道
UUID,标准的有36位,格式如:1838efee-893d-3778-b480-43d6457767ea,是用16进制表示的。
短域名,如http://url.cn/1zJdGX,一个地址最后是转换成“1zJdGX”,是用62进制表示的。

62进制包括“0-9,a-z,A-Z”62个数字和字母。

UUID很大的一个缺点就是:长!
UUID可以把中间的“-”都去掉,也有32位。

我是想把32位的UUID,转换成还不知道有多少位的62进制表示。这样应该会短不少。

有兴趣的可以讨论一下,可行性和实用性。


62位的话,不如加上“_-”凑成64位,
0 请登录后投票
   发表时间:2011-04-26   最后修改:2011-04-26
UUID是把128个二进制数,转换成32个16进制数的,每4个二进制数转换成一个16进制数。

如果是64(2的6次方)进制的话,应该是6个二进制数转换一个64进制数。

我们可以在UUID前面补加一个16进行数,让它成为33位的16进制数,共是132位二进制数。

这样就可以用22个64进制数表示132(22*6)位的二进制数。

结论是,可以把36位的UUID,去掉“-”变成32位的16进制数。
在这个数前面补一个16进制数,比如“0”,就变成了33位(132个二进制数,33*4)。
再把这个33位的16进制数,转换成22位的64进制数。

最终是把36位的UUID,变成一个22位的数表示,短了14位。
0 请登录后投票
   发表时间:2011-04-26  
用代码实现了下
http://zhaiyz.iteye.com/blog/1018906
0 请登录后投票
   发表时间:2011-04-27  
LZ的问题,其实我也想过,呵呵
0 请登录后投票
   发表时间:2011-04-27  
UUID和短域名都不是面向人类的东西,只需要电脑好认就行了。它们的区别在于域名时常需要被共享和显示到移动设备上,所以短点好。

即使你把UUID变成了16位,8位,人类还是不会去多看它一眼。

所以....还是洗洗睡吧。
0 请登录后投票
   发表时间:2011-04-27  
good idea
0 请登录后投票
   发表时间:2011-04-27  
问一下LZ,UUID最大的作用是永远不重复。转为62进制后能保证永不重复吗
0 请登录后投票
   发表时间:2011-04-27  
tianhaoleng 写道
问一下LZ,UUID最大的作用是永远不重复。转为62进制后能保证永不重复吗

汗啊.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics