मैं बाइनरी रीडर क्लास के साथ एक बाइनरी फ़ाइल पढ़ने की कोशिश कर रहा हूं, और मुझे इसे UInt32 के ब्लॉक के रूप में पढ़ने की आवश्यकता है, और उसके बाद कुछ बिट स्थानांतरण आदि।BinaryReader.ReadUInt32() बिट पैटर्न को उलट क्यों करता है?
लेकिन, किसी कारण से जब मैं ReadUInt32 विधि का उपयोग करता हूं तो थोड़ा ऑर्डर उलट जाता है।
मैं उदाहरण के लिए एक फ़ाइल जहां पहले चार बाइट्स हेक्स, 0x12345678
में इस तरह दिखता है, तो वे इस तरह अंत ReadUInt32 द्वारा पढ़ा जा रहा करने के बाद: 0x78563412
।
[0x00000000] 0x12 byte
[0x00000001] 0x34 byte
[0x00000002] 0x56 byte
[0x00000003] 0x78 byte
ऐसा क्यों है:
अगर मैं ReadBytes का उपयोग (4) विधि, मैं उम्मीद सरणी मिल सकता है? क्या यह वही तरीका है .नेट स्मृति में यूंट्स का प्रतिनिधित्व करता है? क्या यह विभिन्न प्लेटफार्मों में समान है (मैं 64 बिट विंडोज 7 चला रहा हूं, नेट 3.5 एसपी 1)?
क्या आप हमें यह बताकर हमारी जिज्ञासा को रद्द कर सकते हैं कि आपने इसे कैसे ठीक किया? :) –
बेशक :) वास्तव में इससे कोई फर्क नहीं पड़ता कि बाइट ऑर्डर किस तरह से है, जब तक यह प्लेटफ्रम (x64, x86) में संगत है, मैं अभी भी बिट्स को निकालने के लिए कर सकता हूं, मुझे बस थोड़ा सा बदलना है स्थानांतरण। जहां तक मैं देख सकता हूं, यूंट सामान्य रूप से छोटे-एंडियन के रूप में संग्रहीत होता है, न कि केवल ReadUInt32 द्वारा निर्मित यूंट, जिससे सबकुछ आसान हो जाता है। –