免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: mhello
打印 上一主题 下一主题

请教:在一个系统下如何获得一个唯一(尽可能)的数字串,而不论系统重启了多少次? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-02-06 23:00 |只看该作者
UUID本来就是16个字节啊,128位。
如果截断,肯定有重复,但是概率不知道。
也不知道你能容忍多大的重复度。

论坛徽章:
0
12 [报告]
发表于 2010-02-06 23:06 |只看该作者
UUID本来就是16个字节啊,128位。
如果截断,肯定有重复,但是概率不知道。
也不知道你能容忍多大的重复度 ...
SuperZ 发表于 2010-02-06 23:00



感谢指针,这么简单的错误居然没想到

论坛徽章:
0
13 [报告]
发表于 2010-02-06 23:08 |只看该作者
md5sum一下或者sha一下就可以了

论坛徽章:
0
14 [报告]
发表于 2010-02-06 23:31 |只看该作者
回复 11# SuperZ


    UUID一般是以36字节的串串给出,去掉中间的连字符,也就是32个字节的串串,如果转成十进制的串串好像更长,
麻烦就在于俺这边输出的位置最多只有16个字节,当把UUID的码全表示成串串,俺的这16个字节肯定是放不下,有无其他方法?

论坛徽章:
9
摩羯座
日期:2013-08-15 15:18:48狮子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龙
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亚洲杯之韩国
日期:2015-03-26 10:16:442015亚冠之武里南联
日期:2015-08-18 14:55:52
15 [报告]
发表于 2010-02-07 00:19 |只看该作者
回复  SuperZ


    UUID一般是以36字节的串串给出,去掉中间的连字符,也就是32个字节的串串,如果转成 ...
mhello 发表于 2010-02-06 23:31


多思考就能让它放下了,16字节足够了,相信你能解决。
当然如果这也想不到,那么没必要去研究这个了。

论坛徽章:
0
16 [报告]
发表于 2010-02-07 03:49 |只看该作者
本帖最后由 mhello 于 2010-02-07 03:55 编辑
多思考就能让它放下了,16字节足够了,相信你能解决。
当然如果这也想不到,那么没必要去研究这个了。
w_anthony 发表于 2010-02-07 00:19



楼主是高手啊,千万别刻薄拿俺逗闷子!
这年头像俺这种菜鸟也只是混口饭吃的苦力头而已!有时忙前忙后连个骨头都啃不上,还落不了好!

研究是万万不敢当,说研究,俺几斤几两自己心里清楚,不过是为了混口声响而已,要不人家连混的机会都不会给俺!
您这号高手对这种东西可能不屑一顾,或许是“饱汉子不知饿汉子饥”呀!


大侠要是有好方法,还望不吝赐教!

UUID俺先藏起来,
先拿位图蒙混一下,要不俺得改行了!

论坛徽章:
9
摩羯座
日期:2013-08-15 15:18:48狮子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龙
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亚洲杯之韩国
日期:2015-03-26 10:16:442015亚冠之武里南联
日期:2015-08-18 14:55:52
17 [报告]
发表于 2010-02-08 11:32 |只看该作者
楼主是高手啊,千万别刻薄拿俺逗闷子!
这年头像俺这种菜鸟也只是混口饭吃的苦力头而已!有时忙前忙 ...
mhello 发表于 2010-02-07 03:49



   没别的意思,你别介意,看一下UUID的定义:

  1. typedef struct _GUID
  2. {
  3.     unsigned long  Data1;
  4.     unsigned short Data2;
  5.     unsigned short Data3;
  6.     unsigned char  Data4[8];
  7. } GUID;
  8. typedef GUID UUID;
复制代码
你看一下sizeof(UUID)是多少。

论坛徽章:
0
18 [报告]
发表于 2010-02-08 21:33 |只看该作者
回复 17# w_anthony


    大侠,俺都误会了!
UUID是占16个字节!
俺原来是想把这16个字节的东东,表示成16个字节的字符串!可能是俺搞错了!
俺现在大概知道是怎么回事了:)
Thanks

论坛徽章:
0
19 [报告]
发表于 2010-02-08 22:01 |只看该作者
随便取某点的时间,然后截取16个固定数字不可以吗?如果不足位,可以位移然后再与另外的某个时间的值取或。 需求只是要保持唯一性,只要实现了就可以了,对吧?

论坛徽章:
0
20 [报告]
发表于 2010-02-08 22:36 |只看该作者
回复 19# maisams


    这个法子也可以,但如果有统计学方面的理论基础做支撑最好!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP