मैं इंटेल कंप्यूटर (Win7 64-bit) पर चल रहा हूं और जो मैंने पढ़ा है उसके अनुसार इंटेल लिटिल-एंडियन का उपयोग कर रहा है। मैं निम्नलिखित कोड के साथ सी # में बाहर इस प्रयास करें:IsLittleEndian फ़ील्ड झूठी रिपोर्ट करता है, लेकिन यह लिटिल-एंडियन होना चाहिए?
byte[] b2 = new byte[] { 0, 1 };
short b2short = BitConverter.ToInt16(b2, 0);
और == 256 एक छोटी-एन्डियन से अपेक्षा के अनुरूप b2short।
तो मैंने पढ़ा है कि .NET में, क्या BitConverter.IsLittleEndian endian प्रणाली का उपयोग कर रहा है, और जब मैं दृश्य स्टूडियो में चर की जाँच यह झूठी रिपोर्ट, यानी यह छोटे-नहीं है एन्डियन को प्रदर्शित करना चाहिए।
क्या 64-बिट ओएस के साथ इसका कोई संबंध नहीं है? कोई विचार?
संपादित करें: मेरे सहयोगी, जो मुझ से भर में बैठता है, एक ही परीक्षण (विन Vista 32-बिट) किया था और एक ही परिणाम
मिलासंपादित करें 2: यह वास्तव में अजीब बात है । जब भी मैं कोड चलाता हूं, और बिटकॉन्टर के बाद टूट जाता है, तो IsLittleEndian == false। लेकिन, यदि मैं लाइन कंसोल जोड़ता हूं। राइटलाइन (बिटकोनवर्टर.इस्लाइट इंडियन); बाद में यह सच है:
byte[] b2 = new byte[] { 0, 1 };
short b2short = BitConverter.ToInt16(b2, 0);
Console.WriteLine(BitConverter.IsLittleEndian);
// Now the IsLittleEndian is true
लेकिन एक बार मैं Console.WriteLine को दूर यह झूठी फिर से है।
मैं यह भी जोड़ सकता हूं कि अगर मैं "Console.WriteLine" IsLittleEndian == सत्य पर तोड़ता हूं, लेकिन यदि मैं पूरी तरह से लाइन को हटा देता हूं तो यह गलत है।
संपादित करें 3: के रूप में मार्क Gravell ने कहा, यह कुछ समय-बग होना चाहिए। यदि मैं परिवर्तनीय BitConverter.IsLittleEndian का उपयोग करता हूं, तो यह प्रारंभ होता है, अगर मैं नहीं (और इसे तोड़ने पर इसे देखता हूं) इसे प्रारंभ नहीं किया गया है और इस प्रकार झूठा ...
कौन सा इंटेल है? क्या यह आईए 64 हो सकता है? हालांकि मुझे आश्वस्त किया गया है कि आईए 64 पर भी यह LE का उपयोग कर सकता है। –
कंसोल दो। राइटलाइन - "firstfieldinit" के बारे में मेरा बिंदु देखें ... –
मैं इंटेल i920 प्रोसेसर का उपयोग कर रहा हूं ... – Ted