आप इस तरह कुछ करने के लिए प्रयास करते हैं:क्यों (बूलियन^int> 0) काम करता है?
if (true^1) {
//do something
}
संकलक यथोचित का कहना है कि ऑपरेटर ^
तर्क प्रकारों बूलियन और पूर्णांक के लिए परिभाषित नहीं है। लेकिन अगर आप इस तरह इसका इस्तेमाल:
if (true^1 > 0) {
//do something
}
कोड compiles (जावा 8 के लिए कम से कम) और दोषरहित काम करता है। असल में इन आपरेशनों:
false^-1 > 0
false^1 > 0
true^-1 > 0
true^1 > 0
अधिनियम एक वैध तार्किक XOR की तरह:
|^
-----+--
F F | F
F T | T
T F | T
T T | F
किसी को भी कृपया समझा सकते हैं क्या हुड के नीचे होता है?
के साथ XORed बूलियन नहीं कर सकते हैं, मैं आपको [* ऑपरेटर प्राथमिकता *] के बारे में जानने की सलाह देता हूं (http://introcs.cs.princeton.edu/java/11precedence/)। –
@ सोप्रप्रोग्रामड्यूड निष्पक्ष होने के लिए, तथ्य यह है कि तुलनात्मक रूप से बिटवाई ऑपरेटरों की तुलना में कम प्राथमिकता है, जहां यह मामला है, ऑपरेटर की प्राथमिकता का एक विशेष रूप से अनजान पहलू है। – Random832
यही कारण है कि आपको इसके बारे में जानने की आवश्यकता है, @random :-) –