मुझे लगता है मैं थोड़ा endian में एक bytearray (सामग्री []) है और एक 2 बाइट मूल्य से बनाना होगा कोडजावा बिटवाइज़ आपरेशन
int b1 = 0xffff & (content[12]<<8 | 0xff & content[11]);
की इस पंक्ति है। यह कोड नौकरी ठीक है लेकिन परीक्षण से पहले मैंने इसे
int b1 = 0xffff & (content[12]<<8 | content[11]);
और परिणाम सही नहीं था। मेरा सवाल यह है कि इस परिदृश्य में 0xff क्यों आवश्यक है?
क्योंकि बाइट्स को हस्ताक्षरित पूर्णांक के रूप में व्याख्या किया जाता है, और इसका मतलब है, उदाहरण के लिए, (बाइट) 0x80 (int) 0xffffff80 हो जाता है। इसे साइन एक्सटेंशन कहा जाता है। उत्तर के लिए – Ingo