के बीच मैं जावा में एक बिटवाई या byte
मान करने की कोशिश कर रहा हूं।जावा बिटवाइ या बाइट और इंट
उदाहरण के लिए, मैं चला रहा हूँ:
byte b = (byte)0b11111111;
int result = 0 | b;
मेरे इस के लिए अपेक्षित परिणाम 0b00000000 00000000 00000000 11111111
, या 255
होगा। हालांकि, मुझे -1
, या 0b11111111 11111111 11111111 11111111
प्राप्त हो रहा है।
मैं यह सोचते हैं रहा है कि जावा आपरेशन प्रदर्शन से पहले संकेत विस्तार के माध्यम से मेरी एक int
में byte
बदल देता है, और अगर वहाँ एक तरह से एक सा मास्क (0b11111111
) का उपयोग कर के बिना मेरे वांछित परिणाम मिल गया था मैं सिर्फ उत्सुक था।
"थोड़ा मास्क का उपयोग किए बिना" जवाब बिटमैस्क का उपयोग करना है। जावा में इसके आसपास वास्तव में कोई रास्ता नहीं है। –