Tuesday, 15 January 2013

java - Convert Signed Byte Array to Int array -


मेरे पास पूर्णांक सरणी है

  int res [] = {176, 1 9 2, 312 , 1028, 1064, 1016};   

मुझे इस तरह संबंधित int ऐरे की हस्ताक्षरित बाइट सरणी मिलती है

  int sign_byte_array [] = {-80, 0, -64, 0, 56, 1, 4, 4, 40, 4, -8, 3};   

int सरणी में प्रत्येक इंडेक्ट को बाइट सरणी में दो इंडेक्सियों द्वारा दर्शाया जाता है, अर्थात् int सरणी में प्रत्येक मान को 2 बाइट के रूप में दर्शाया जाता है।

मैं नहीं Int सरणी तक पहुंच है और मैं इस हस्ताक्षरित बाइट सरणी को वास्तव में int सरणी में परिवर्तित करना चाहता हूं

मैं यह कैसे कर सकता हूं?

धन्यवाद < P>

  निजी स्थिर int [] toB (int [] res) {int [] बाइट्स = नया int [res.length * 2] ; के लिए (int i = 0; i & lt; res.length; ++ i) {int value = res [i]; Int lo = मूल्य & amp; 0xFF; Int hi = (मान & gt; & gt; 8) & amp; 0xFF; बाइट्स [2 * i] = (इंट) (बाइट) लो; बाइट्स [2 * i + 1] = (इंट) (बाइट) हाय; } वापसी बाइट्स; } निजी स्थिर int [] toi (int [] बाइट्स) {int [] res = new int [bytes.length / 2]; के लिए (इंट आई = 0; आई & lt; res.length; ++ i) {इंट लो = (इंट) बाइट्स [2 * i] & amp; 0xFF; Int hi = (int) बाइट्स [2 * i + 1] & amp; 0xFF; रिज [आई] = लो | (नमस्ते & lt; & lt; 8); } रिटर्न रिज़; } सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {int [] res = {176, 1 9 2, 312, 1028, 1064, 1016}; Int [] हस्ताक्षरित_बाइट_अरे = {-80, 0, -64, 0, 56, 1, 4, 4, 40, 4, -8, 3}; System.out.println ("b:" + Arrays.toString (toB (res))); System.out.println ("i:" + Arrays.toString (toI (हस्ताक्षरित_बाइट_अरे))); }   

देता है

  ख: [-80, 0, -64, 0, 56, 1, 4, 4, 40, 4, -8 , 3] मैं: [176, 1 9 2, 312, 1028, 1064, 1016]   

यह स्पष्ट रूप से एक संक्षिप्त [बाइट [] रूपांतरण है जैसा कि आपके पास एक int है [] मैं कहूंगा, इसमें कोई भी उपयोगिता रूपांतरण फ़ंक्शन मौजूद नहीं है।

No comments:

Post a Comment