मैं विकिपीडिया पर निम्नलिखित SHA256 pseudocode देख रहा हूं।इस फ्लोट के आंशिक भाग के पहले 32 बिट्स क्या हैं?
विशेष रूप से, मैं निम्नलिखित खंड देख रहा हूं।
//Initialize variables
//(first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
h0 := 0x6a09e667
मैं यह पता लगाने की कोशिश कर रहा हूं कि एच 0 कैसे उत्पन्न हुआ था। मुझे टिप्पणी से पता है कि यह 2 के वर्ग रूट का आंशिक हिस्सा होना चाहिए। मुझे विश्वास है कि मैं निम्नलिखित टाइप करके 2 के वर्ग रूट का आंशिक हिस्सा प्राप्त कर सकता हूं। निम्नलिखित सभी कोड पायथन प्रतिलिपि से हैं।
>>> math.modf(math.sqrt(2))[0]
0.41421356237309515
फ़ाइल के शीर्ष पर यह बताता है कि सभी स्थिरांक की घोषणा बिग एंडियन है। मुझे पता है कि मेरा पर्यावरण छोटा एंडियन है क्योंकि मैं टाइप करता हूं।
>>> import sys
>>> sys.byteorder
'little'
तो, H0 में हेक्स मान की मेरी पुस्तिका में गड़बड़ी के अनुसार, लिटल एन्डियन प्रतिनिधित्व 0x67e6096a होना चाहिए।
>>> int(0x67e6096a)
1743128938
और मैं अटक गया हूं। मैंने विभिन्न जोड़ों की कोशिश की है, लेकिन उनमें से कोई भी इस परिणाम के साथ समाप्त नहीं हुआ है। मुझे नहीं पता कि फ्लोटिंग पॉइंट नंबर के आंशिक भाग के पहले 32 बिट कैसे प्राप्त करें। मुझे पता है कि किसी भी तरह से मेरा 0.41421356237309515 (फ्लोट) परिणाम 1743128938 (int) में परिवर्तित किया जा सकता है, लेकिन मुझे वास्तव में कोई जानकारी नहीं है। फ़्लोटिंग पॉइंट नंबर के आंशिक भाग के पहले 32 बिट्स प्राप्त करने के लिए आवश्यक कदम क्या हैं? पाइथन केवल उत्तर दें।
धन्यवाद।
तो, क्योंकि पाइथन हेक्स स्थिरांक के साथ एक छोटी, int, लंबी (या जो कुछ भी) के बजाय "निबल्स की धारा" के रूप में कार्य करता है, मुझे बाइट ऑर्डर के बारे में चिंता करने की ज़रूरत नहीं है? क्या वह पाइथन शाब्दिक हेक्स स्थिरांक प्रभावी ढंग से हमेशा बिग एंडियन नहीं बनायेगा?क्षमा करें अगर एक बेवकूफ सवाल है, लेकिन मैं आसानी से उलझन में हूँ। :) –
हाँ का क्रमबद्ध करें, लेकिन यह पायथन विशिष्ट नहीं है। यही वह आदेश है जिसे हम संख्या लिखते हैं। ध्यान दें कि यह आदेश अरबी लेखन से विरासत में मिला है, जहां पाठ बाईं ओर दाएं हो जाता है; उस दृश्य के साथ, यह थोड़ा प्यारा है। यह बाइट्स में विभाजित नहीं है, हालांकि, बाइट स्वैपिंग प्रासंगिक नहीं है। –