Bu bilgisayarın ürettiği her GUID'nin ortasında neden bir 4 görebiliriz?Her zaman eşit bir sayıya sahip GUID
cevap
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.
Bu cevabı kabul edeceğim, belki de aptalca bir sorum var, neden her şeyi birleştirmek yerine char'i koyuyorlar? –
@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 –
Demek istediğim, neden bir ip gibi gösterilmediyse, parçalarını - ile bölerler? –
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
Basit google arama döner: 'haneli M dört bit https version' UUID gösterir: //en.wikipedia.org/wiki/Universally_Unique_Identifier –
İyi bir şeydi, makineyle ilgili olduğunu öğrendim –
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. –