GUID 类型

GUID 类型


GUIDglobally unique identifier(全球唯一标识符)

 

它通过一种复杂的算法生成,保证世界上任何两台计算机都不会生成重复的 GUID 值。

GUID主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。

在 Windows 平台上,GUID应用非常广泛,比如:注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。

 

GUID 类型定义:

#if defined(__midl)

typedef struct {

    unsigned long  Data1;

    unsigned short Data2;

    unsigned short Data3;

    byte           Data4[ 8 ];

} GUID;

#else

typedef struct _GUID{

    unsigned long  Data1;

    unsigned short Data2;

    unsigned short Data3;

    unsigned char  Data4[ 8 ];

} GUID;

#endif

 

示例:

GUID43ad2ba0_2471_4610_86ac_5e8e8836cc87 = { 1135422368u, 9329u, 17936u, { 134u,172u, 94u, 142u, 136u, 54u, 204u, 135u } };

 

从 GUID 类型的定义上看,分成四个部分,但是,从具体的示例看,用四个线进行分隔好像应该是五个部分。那么,到底是怎么加速呢?

 

毫无疑问,类型定义肯定是准确的。那么就要看看它们到底是如何对应的?

看示例,等号前面,是我们可以看到的表现形式,用四个下划线分隔,有五个部分,每一部分都是 16 进制数;等号后面是真正存储的数据,以逗号分隔,是四个部分,第四部分又由 8 个部分组成,每一部分都是无符号的10 进制数。

 

计算一下,就可以知道:

16 进制 43ad2ba0 是等于 10 进制 1135422368u,同理,后面两个也是如此。

第四和第五部分合在一起,看作一个部分,是 16 位 16 进制数,其中,每两位一组,构成一个无符号的整数。

 

 

16 进制数

10 进制数

1

43ad2ba0

1135422368u

2

2471

9329u

3

4610

17936u

4.1

86

134u

4.2

ac

172u

4.3

5e

94u

4.4

8e

142u

4.5

88

136u

4.6

36

54u

4.7

Cc

204u

4.8

87

135u

 

 

在  System.Guid 命名空间下有一个 NewGuid() 函数,可以生成 GUID 值。

 

比如,在 PowerShell 下输入:

[System.guid]::NewGuid()

 

就得到一个 GUID 值:

Guid

----

43ad2ba0_2471_4610_86ac_5e8e8836cc87

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值