2017-09-05 16 views
5

Bu bilgisayarın ürettiği her GUID'nin ortasında neden bir 4 görebiliriz?Her zaman eşit bir sayıya sahip GUID

enter image description here

+4

Basit google arama döner: 'haneli M dört bit https version' UUID gösterir: //en.wikipedia.org/wiki/Universally_Unique_Identifier –

+0

İyi bir şeydi, makineyle ilgili olduğunu öğrendim –

+0

Bu yüzden GUID'ler rasgele sayılar olarak kullanılmamalıdır. Tamam, bir sürüm 4 GUID (bunlar) çoğunlukla rastgele bitlerden oluşur, ancak bazı bitler RFC 4122 ile uyumlu olacak şekilde sabitlenir. Eğer 128 rasgele bit gerekiyorsa, sadece uygun bir rasgele sayı üreteci kullanın. –

cevap

7

O GUID algoritması (sizin durumunuzda 4) sürüm var:

https://en.wikipedia.org/wiki/Universally_unique_identifier

onun kanonik metinsel temsilinde UUID onaltı sekizlileri 32 olarak temsil edilmektedir 8-4- biçiminde, tire ile ayrılan beş grubunda görüntülenen onaltılı (taban 16) basamaklar Toplam 36 karakter için 4-4-12 (32 alfanümerik karakter ve dört tire). Örneğin:

123e4567-e89b-12d3-a456-426655440000 
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 

basamaklı M dört biti UUID'si versiyonunu gösterir ve basamaklı N biri üç en önemli biti UUID'si varyantını göstermektedir. örneğinde, M 1 ve N bir (10xx), yani UUID'nin bir varyant 1, versiyon 1 UUID olduğu anlamına gelir; yani, zamana dayalı bir DCE/RFC 4122 UUID.

+0

Bu cevabı kabul edeceğim, belki de aptalca bir sorum var, neden her şeyi birleştirmek yerine char'i koyuyorlar? –

+0

@Marco Salerno: Özür dilerim, seni takip etmem: UUID * xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 'içinde * * olarak gösterilebilen * 128 bit sayıdır. Üçüncü öbek - 'Mxxx' aslında onaltılık gösterimde * 16-bit tamsayıdır *. Üst * 4 bit * - 'M' sürüm (bu yüzden 0..15 aralığında olabilir). Burada göremiyorum * char * burada –

+0

Demek istediğim, neden bir ip gibi gösterilmediyse, parçalarını - ile bölerler? –

1

Bu, kullanılmakta olan GUID/UUID's sürümünden kaynaklanmaktadır;

Bazı iyi bilgi

here bulunabilir, ancak temel olarak bu aşağıdaki biçimi kullanır sürüm 4 şunlardır:

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx