将GUID转换为long
我需要在C#中开发一个everSing计数器。 我正在考虑将GUID转换为long。 这可能在c#中吗? 有没有其他方法来发展一个不断增加的柜台?
不, GUID是128位,所以不适合你的长,因为那是64位。 System.Decimal是128位,所以会让你走很远的路,但当然也有它的限制。 即使您将计数器保存在字符串中,它也有其限制。 计算机也有限制,你必须找到一个足够大的计算机,以便你可以继续一段时间。
编辑:
在.Net 4.0中有一个BigInteger可能相当大,但请记住,即使它有其限制,因为它必须适合内存。
你可以试试这样的东西。
byte[] gb = Guid.NewGuid().ToByteArray(); int i = BitConverter.ToInt32(gb,0); long l = BitConverter.ToInt64(gb,0);
我不确定它是否非常安全。 :p
GUID是128位整数。 long是有符号的64位整数。 虽然ulong的值可以是0到18,446,744,073,709,551,615。 够了吗? 或者你想使用小数?
问题是GUID的集合远远超过了所有整数长度精度的集合。 所以你真的在缩小选择的基数。 没有充分的理由这样做。
如果你想继续增加一个数字而不用担心它,那么有一个库IntX可以处理大数字。 您可以将数字生成器的本地状态存储在文件或内存中,并且您的数字会不断增加。 (好吧)
上述就是C#学习教程:将GUID转换为long分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/959638.html