2011-08-17 9 views
5

दो बूलियन तर्क दिए जाने पर,^ऑपरेटर अनन्य करता है या उदा।groovy^ऑपरेटर

true^true == false 
true^false == true 
false^true == true 
false^false == false 

जब दो संख्यात्मक तर्क दिया, यह कुछ करता है, लेकिन मैं पता नहीं क्या है। पहले तो मैंने सोचा कि यह मॉड्यूलर विभाजन क्योंकि

(5^5) == 0 

हालांकि

(10^4) == 14 

तो यह मॉड्यूलर विभाजन नहीं है था, यह थोड़ा-स्थानांतरण किसी तरह का है?

यह एक बिटवाइज़ अनन्य या है:

+0

यह जावा के रूप में बिटवाइज़ अनन्य या, एक ही है http://stackoverflow.com/questions/460542/operator-in-java –

उत्तर

12

^ के रूप में यह और सबसे अन्य भाषाओं जावा में करता है एक ही बात करता है:

इसका मतलब यह है (कम बिटवाइज़ XOR) इस बात का द्विआधारी प्रतिनिधित्व में हर बिट के लिए उत्पादन में परिणामी बिट दो संख्या bit_in_first_value^bit_in_second_value होगी।

+1

दरअसल, मेरी जानकारी के लिए सभी भाषाओं दृढ़ता से सी से प्राप्त की इस निर्धारित व्यवहार उनके एक्सओआर ऑपरेटरों। E.G. 'perl -le 'प्रिंट (10^4)' 'प्रिंट आउट 14. 14. ग्रोवी और पर्ल एक समान पारिस्थितिक अच्छा पर कब्जा करते हैं, इतना है कि [ग्रोवी का संस्करण] (http://pleac.sourceforge.net/pleac_groovy/index.html) दर्जनों भाषाओं में से पहला था जिसका अनुवाद * पर्ल कुकबुक * [पीएलईएसी - प्रोग्रामिंग भाषा उदाहरण अलाइक कुकबुक] (http://pleac.sourceforge.net/) स्रोत स्रोत पर भंडार में पूरा हो गया है। ओकैमल दूसरा था। पाइथन 85% और रूबी केवल 65% पर है। ग्रोवी आसान और मजेदार है। – tchrist