当前位置: 首页 > 知识库问答 >
问题:

如何使用UUID生成唯一的正长

路裕
2023-03-14

共有1个答案

公羊奇
2023-03-14
UUID.randomUUID().getMostSignificantBits() & Long.MAX_VALUE

这样做的原因是,当你用1按位&时,它允许相同的数字按原样通过;当你用0按位&时,它阻止它,结果是0。现在,二进制中的long.max_value是

0111111111111111111111111111111111111111111111111111111111111111 

这是0后跟63个1s(总计64位,在java中很长)

所以当你按位的时候,一个数字X和上面的数字,你会得到相同的数字X,除了最左边的位现在变成了零。这意味着你只改变了这个数字的符号,而没有改变它的值。

 类似资料:
  • 问题内容: 我需要为数据库主键列生成唯一的Long ID。 我以为我可以使用 UUID.randomUUID()。getMostSignificantBits(), 但是有时它会产生一些负数,这对我来说也是个问题。 是否有可能仅从UUID生成正数长?会有数十亿个条目,因此我希望每个生成的键必须唯一。 问题答案: 之所以起作用,是因为当您按位与1进行操作时,它允许按原样传递同一位数字;当您按位与0进

  • 问题内容: 如何使用数据库查询回调设置变量值?我该怎么办? 问题答案: 自从使用node.js已经有一段时间了,但是我想我可以提供帮助。 首先,在node中,您只有一个线程,应该使用回调。您的代码将发生的情况是查询将排队等待执行,但是循环将毫无意义地连续作为繁忙循环运行。 您应该可以通过以下回调来解决您的问题: 并这样使用 我在大约2年内没有编写任何node / js的代码,也没有进行测试,但是基

  • 我是xslt的新手。我想使用xslt生成32位长UUID并将其作为输入添加到xml中。我试图使用数学自由的随机函数,但得到错误。 输入XML XSLT代码段 我正在使用在线编辑器,但得到如下异常。http://xslttest.appspot.com/ 错误:找不到名为的匹配0参数函数{http://exslt.org/math}随机()。没有具有本地名称random的Saxon扩展函数 实际上,

  • 问题内容: 我有一个带有String的对象,该对象具有唯一的id。(例如“ ocx7gf”或“ 67hfs8”),我需要为其提供int hascode()的实现,该实现显然是唯一的。 如何以最简单/最快的方式将字符串转换为唯一的int? 10倍 编辑-确定。我已经知道String.hashcode是可能的。但是不建议在任何地方使用。实际上’,如果不建议使用其他任何方法- 如果我的对象在集合中并且需

  • 本文向大家介绍python uuid生成唯一id或str的最简单案例,包括了python uuid生成唯一id或str的最简单案例的使用技巧和注意事项,需要的朋友参考一下 介绍: UUID是128位的全局唯一标识符,通常由32字节的字符串表示。 使用: uuid1()——基于MAC地址、当前时间戳、随机数生成。 uuid3()——基于名字的MD5散列值。 uuid4()——基于随机数,有一定的重复

  • 我想加入两个模型,都使用org。冬眠主键的id.UUIDGenerator。但在启动时,我得到以下错误: 组织。冬眠工具模式。spi。CommandAcceptanceException:通过JDBC语句执行DDL“alter table user_role add constraint FK5scdquo6f12cpstqai86x4biw外键(roles_role_id)references