मैं एक जावा क्लाइंट से डेटा को सी # सर्वर पर भेजने की कोशिश कर रहा हूं और int को बाइट सरणी में परिवर्तित करने में समस्या आ रही है।int से बाइट सरणी को परिवर्तित करते समय अलग-अलग परिणाम - .NET बनाम जावा
जब मैं इस कोड का उपयोग सी # के साथ नंबर 8342 परिवर्तित कर रहा हूँ:
BitConverter.GetBytes(8342)
परिणाम है: एक्स [4] = {150, 32, 0, 0} जावा के साथ
मैं का उपयोग :
ByteBuffer bb = ByteBuffer.allocate(4);
bb.putInt(8342);
return bb.array();
और यहाँ परिणाम है: एक्स [4] = {0, 0, 32, -106}
कोई व्याख्या कर सकते हैं? मैं जावा के लिए नया हूं और यह पहली बार है जब मैं बाइट एरे में नकारात्मक संख्या देखता हूं।
bb.order(ByteOrder.LITTLE_ENDIAN)
जावा भंडार बातें आंतरिक रूप से बिग एन्डियन के रूप में है, जबकि नेट डिफ़ॉल्ट रूप से लिटल एन्डियन है:
वैसे बाइटबफर को दस्तावेज किया गया है (इसलिए जेडोक पढ़ने में मदद मिलेगी) बिगएंडियन को डिफ़ॉल्ट रूप से उपयोग करने के लिए, लेकिन यह वास्तव में एक दिलचस्प सवाल है, क्या जावा इस्तेमाल किए गए बाइटऑर्डर को परिभाषित करता है? मुझे संदेह है - उच्च प्रदर्शन हिट के लिए बहुत कुछ होगा और ध्यान देने योग्य नहीं होगा (जब आउटपुट लिखते हैं और हम इसे दस्तावेज़ीकरण के अनुसार आसानी से परिवर्तित कर सकते हैं) – Voo
मुझे लगता है कि आउटपुट अब -106, 32, 0, 0 –
होगा @ बाला आर - हस्ताक्षरित और हस्ताक्षरित – manojlds