2011-02-15 14 views
5

से अलग मैं निम्नलिखित Guid है कर रहे हैं:क्यों द्विआधारी GUIDs सामान्य प्रतिनिधित्व

AAB13E97-449B-4D5B-BDE2-AC479C31B782 

का उपयोग System.Guid + DbLinq + SQLite यह स्टोर करने के लिए निम्नलिखित क्षेत्र डेटाबेस में जोड़ा जाता है।

973EB1AA-9B44-5B4D-BDE2-AC479C31B782 

(डैश स्पष्टता के लिए जोड़ा)

मुझे लगता है कि पिछले 8 बाइट्स उसी क्रम में कर रहे हैं, और 3 पहले समूहों उलट कर रहे हैं देख सकते हैं, लेकिन मैं क्यों समझ में नहीं आता।

उत्तर

4

Wikipedia's article on the subject को देखते हुए यह कहते हैं:

Data4 उसी क्रम GUID पाठ एन्कोडिंग में दिखाया गया के रूप में (देखें नीचे) में बाइट्स संग्रहीत करता है, लेकिन अन्य तीन क्षेत्रों थोड़ा-endian सिस्टम पर उलट कर रहे हैं (के लिए उदाहरण इंटेल सीपीयू)।

तो मैं निष्कर्ष:

  • यह डीबीएमएस से स्वतंत्र रूप से होता है या ढांचे का इस्तेमाल किया
  • यह प्रोसेसर आर्किटैक्चर
  • इस डिजाइन

तो सवाल कर रहा है पर निर्भर करता है बनी हुई है:

ई पर क्यों arth उन्होंने इसे इस तरह से डिजाइन किया?

+5

"पृथ्वी पर क्यों उन्होंने इसे इस तरह से डिजाइन किया?" - मेरा अनुमान है कि मूल रूप से वी 1 GUIDs ने डेटा 4 फ़ील्ड में मैक पता रखा था। ऐतिहासिक रूप से बड़े-एंडियन को मानक नेटवर्क बाइट ऑर्डर के रूप में परिभाषित किया गया था और आईपी पते, मैक पते इत्यादि जैसे कई नेटवर्क से संबंधित चीजों में इस्तेमाल किया गया था। –

+1

विकिपीडिया से: 'संस्करण 1 (मैक पता) संकल्पनात्मक रूप से, मूल (संस्करण 1) यूयूआईडी के लिए पीढ़ी की योजना यूयूआईडी संस्करण को यूयूआईडी उत्पन्न करने वाले कंप्यूटर के मैक पते और पश्चिम में ग्रेगोरियन कैलेंडर को अपनाने के बाद 100-नैनोसेकंद अंतराल की संख्या के साथ जोड़ना था। इस योजना की आलोचना की गई है कि यह पर्याप्त रूप से "अपारदर्शी" नहीं है; यह उस कंप्यूटर की पहचान दोनों को प्रकट करता है जो यूयूआईडी उत्पन्न करता है और जिस समय उसने ऐसा किया था –

संबंधित मुद्दे