gpt4 book ai didi

c# - 如何生成唯一的 8 位数字?

转载 作者:可可西里 更新时间:2023-11-01 03:06:28 28 4
gpt4 key购买 nike

我正在使用此代码生成一个 8 位唯一编号。

byte[] buffer = Guid.NewGuid().ToByteArray();
return BitConverter.ToUInt32(buffer, 8).ToString();

此代码是否真的生成了一个唯一的数字,或者它可能会再次重复相同的数字?

最佳答案

GUID 不仅仅是一个随机数;它由段组成。如果 guid 是在同一台计算机上生成的,则某些段根本不会更改。通过仅使用原始 128 位中的 64 位,您破坏了 guid 的结构,很可能破坏了生成数字的唯一性。

question有关 guid 唯一性的更多信息,请查看 this link以及有关在需要唯一编号时为什么只使用部分 guid 不好的更多信息。

如果您需要将复制限制在绝对最小值,增量计数器将满足您的需求。如果您的应用程序使用多个线程或进程,则可能很难(甚至不可能)正确实现计数器。

这是 guid 设计的领域,在多台机器上是唯一的。因此,如果跨机器的唯一性是一项要求,您应该使用 guid。整个指南。

关于c# - 如何生成唯一的 8 位数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103610/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com