Guid(全局统一标识符)

Guid(全局统一标识符)

一、简介

1.什么是GUID?全局唯一标识符(GUID,Globally Unique Identifier),GUID也称作 UUID(Universally Unique IDentifier) 。GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。2.为什么要使用GUID?在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。GUID一词有时也专指微软对UUID标准的实现。(1). GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。 通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。(2). GUID永远是方便的 对于程序开发的各个方面,.NET Framework简化了建立和处理GUID数值的过程。在.NET程序需要的地方,这一功能很容易地生成唯一的数值。

二、代码案例

 class Program
    {
        static void Main(string[] args)
        {

            var uuid = Guid.NewGuid().ToString(); // 67b69599-5026-4765-8707-def49a214219

            var uuidN = Guid.NewGuid().ToString("N"); // f93618e93beb4a4181526d7a38c169a4

            var uuidD = Guid.NewGuid().ToString("D"); //c747ac63-a9c2-46f9-80d7-f635c330a59f

            var uuidB = Guid.NewGuid().ToString("B"); // {2a77d03e-0366-4977-97f1-229c17fe906f}

            var uuidP = Guid.NewGuid().ToString("P"); // (8165193f-8595-439d-bbaf-9ce55171eecf)

            var uuidX = Guid.NewGuid().ToString("X"); // {0x48645e66,0xbe0c,0x4990,{0x8e,0xee,0x3c,0x84,0xba,0xda,0x0d,0x83}}

            var guid1 = GenerateId1();//5a0aec9398c64e09

            var guid2 = GenerateId2();//4976172849618296785
        }
        private static  string GenerateId1()
        {
            long i = 1;
            foreach (byte b in Guid.NewGuid().ToByteArray())
            {
                i *= ((int)b + 1);
            }
            return string.Format("{0:x}", i - DateTime.Now.Ticks);
        }


        private static  long GenerateId2()
        {
            byte[] buffer = Guid.NewGuid().ToByteArray();
            return BitConverter.ToInt64(buffer, 0);
        }
     

    }

三、总结

这里的D,N,B,P是不区分大小写的,如果传入空字符串,则使用的默认的D类型,其它情况都会报异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值