हर कोई अपने सरणी के आकार को समायोजित करने की आवश्यकता होगी उसके उम्मीद की बाइट-आदेश एन्कोडिंग अनदेखी किया जा रहा है उत्पादन। BitConverter
कक्षा एक निश्चित एन्कोडिंग (आमतौर पर लिटिल-एंडियन, आईआईआरसी) का उपयोग करती है। उदाहरण में आउटपुट को बिग-एंडियन माना जाता है। एक परिपूर्ण दुनिया में आप गणित स्वयं ही करेंगे, लेकिन Array.Reverse
का उपयोग करना आसान है, फिर इनबिल्ट BitConverter
कक्षा का उपयोग करें।
शायद इससे पहले कि मैं यह इसलिए यहाँ असुरक्षित कोड का एक बहुत जल्दी टुकड़ा है पोस्ट करने के लिए मिलता है उत्तरों की एक ढेर होने जा रहे हैं:
public static unsafe ulong ToULong(byte[] values)
{
byte* buffer = stackalloc byte[8];
if (BitConverter.IsLittleEndian)
Array.Reverse(values);
System.Runtime.InteropServices.Marshal.Copy(values, 0, (IntPtr)buffer, values.Length);
return *(ulong*)buffer;
}
स्रोत
2013-02-21 12:39:54
एक 'uint' 4 बाइट है, लेकिन आप 6 मिल गया है वहाँ बाइट्स। किसी भी मामले में, क्या आप 'बिटकॉन्टर' कक्षा के बारे में जानते हैं? – Ani
बस गणित करें: 'srno [0] * 0x10000000000 + srn0 [1] * 0x100000000 ...'। जो कुछ भी। –
@Ani: ठीक है कोई समस्या मुझे उलंग के लिए बताओ? बिटकॉन्टरर क्लास को इंडेक्स की आवश्यकता है जो मैं लंबवत इंडेक्स के लिए नहीं चाहता हूं, मैं पूरे सरणी को कन्वर्ट करना चाहता हूं – Kevan