//key & hash are both byte[]
int leftPos = 0, rightPos = 31;
while(leftPos < 16) {
//possible loss of precision. required: byte, found: int
key[leftPos] = hash[leftPos]^hash[rightPos];
leftPos++;
rightPos--;
}
जावा में दो बाइट्स पर थोड़ा सा ऑपरेशन क्यों एक int वापस करेगा? मुझे पता है कि मैं इसे वापस बाइट में डाल सकता हूं, लेकिन यह मूर्खतापूर्ण लगता है।दो बाइट्स पर एक्सओ ऑपरेटर एक int उत्पन्न क्यों करता है?
संदर्भ के लिए: http: //java.sun .com/डॉक्स/पुस्तकों/jls/तृतीय_डिशन/एचटीएमएल/रूपांतरण.html # 5.6.2 और http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#5233। मुझे तर्क नहीं पता, इसलिए मैं जवाब पोस्ट नहीं कर रहा हूं। –
सेकेंडेड। मैं कुछ भी नहीं बता रहा * क्यों * उपर्युक्त होता है, बस यह करता है। –
कई कारणों से प्रचार पदोन्नति मौजूद है। बिटवाई ऑपरेशंस के लिए यह लगभग सभी लोगों की तुलना में बहुत कम समझ में आता है, लेकिन फिर क्यों नहीं? आप इसे हमेशा वापस कर सकते हैं। –