2010-07-22 25 views
5

^ से नीचे ऑपरेटर क्या है? इसका उपयोग कब करें?"^" ऑपरेटर का उपयोग कब करें

मेरी प्रोग्रामिंग भाषा सी # है।

+3

गूगल , या इस मामले में एमएसडीएन, आपका मित्र है: http://msdn.microsoft.com/en-us/library/zkacc7k1%28VS.71%29.aspx। अपने दूसरे प्रश्न का उत्तर देने के लिए, जब आपको आवश्यकता हो तो ऑपरेटर का उपयोग करें यह, जैसे '' 'ऑपरेटर। – stakx

+0

Google उत्तर नहीं है, हालांकि, एमएसडीएन है। http://meta.stackexchange.com/questions/8724/how-to-deal-with-google-questions – Bobby

+6

यदि वह नहीं जानता कि वह क्या ढूंढ रहा है, तो गुगलिंग कठिन हो सकती है, खासकर जब से Google^चरित्र को भी पहचान नहीं पाता है। इसके अलावा, वह यह भी जानना चाहता है कि "इसका उपयोग कब करें" StackOverflow –

उत्तर

9

^ एक तार्किक XOR ऑपरेटर अगर ऑपरेंड bools हैं अन्यथा यह एक बिटवाइस XOR ऑपरेटर

बाइनरी^ऑपरेटरों अभिन्न प्रकार और bool के लिए पूर्वनिर्धारित कर रहे हैं है। अभिन्न प्रकारों के लिए,^बिटवाईव अनन्य-या इसके संचालन की गणना करता है। बूल ऑपरेंड के लिए,^तार्किक अनन्य या उसके संचालन की गणना करता है; यही है, परिणाम सही है अगर केवल तभी होता है जब उसके ऑपरेटरों में से एक सच है।

http://msdn.microsoft.com/en-us/library/zkacc7k1.aspx

+4

"लॉजिकल एक्सओआर ऑपरेटर।" - यह केवल तभी सही है जब ऑपरेंड बूल होते हैं, अन्यथा यह थोड़ा सा ऑपरेटर है। 'बिटवाइ' और 'तार्किक' शब्दों के साथ तेजी से और ढीले बजाना जीवन को बहुत कठिन बनाता है जब आप 'सी' में & & && के बीच अंतर को समझाने के लिए आते हैं ... –

+0

@ विल डीन: स्पष्टीकरण के लिए धन्यवाद। – sshow

3

यह XOR ऑपरेटर है। इसका उपयोग बिटवाई ऑपरेशंस में किया जाता है, जहां परिणाम सही होता है यदि बायीं तरफ सही है या दायीं तरफ सही है, लेकिन दोनों हैं या दोनों गलत हैं। तो 0xf8^0x3f होगा:

1111 1000 
0011 1111 
--------- 
1100 0111 

कौन सा हेक्साडेसिमल में सी 7 है।

सामान्य रूप से, यदि आप थोड़ा सा अंकगणित नहीं कर रहे हैं, तो आपको इसके बारे में चिंता करने की आवश्यकता नहीं होगी।

+0

आप यह जोड़ना भूल गए कि दोनों झूठे हैं तो यह भी गलत है। –

0

मैं सिर्फ || की तरह एक द्विआधारी ऑपरेटर के रूप में यह के बारे में सोच, & &, आदि ...

अगर मैं तर्क लिख रहे थे और साथ समाप्त हो गया:

if((condition1 && !condition2) || (condition2 && !condition1)) 
{ 
} 

मैं के रूप में यह फिर से लिखने सकता है :

if(condition1^condition2) 
{ 
} 

कहा कि, मैं आधार आधार द्वारा एक मामले पर लेने के लिए और रिश्तेदार अंधकार की वजह से संक्षिप्तता बनाम संभावित कहानियो के लाभ के वजन चाहते हैं।

0

दूसरों द्वारा उल्लिखित इसके एक्सक्लूसिव OR (XOR) ऑपरेटर। XOR

P Q P^Q 
T T  F 
T F  T 
F T  T 
F F  F 

पर सत्य तालिका है नोट करें कि पी^क्यू पी के बराबर है! = क्यू। कभी-कभी पी! = क्यू एक्सओआर ऑपरेटर के बजाय कोड में प्रयोग किया जाता है।

1
  • यह अक्सर " बिट्स फ्लिप" करने के लिए 1 के साथ यह XORing द्वारा (फ्लिप करने), 0 (रखने के लिए) एक तरीके के रूप में प्रयोग किया जाता है। आमतौर पर यह एन्क्रिप्शन/डिक्रिप्शन/हैशिंग में उपयोगी उपयोगी है।** यह वास्तव में उपयोगी **

उदाहरण है:

101^ 
110 
----- 
011 //Flip the first 2, keep the 3rd 
  • यह भी एक गमागमन विधि के लिए इस्तेमाल किया जा सकता है (, हालांकि मानक रास्ता और जेनरिक का उपयोग कर शायद और अधिक आदर्श है) :

उदाहरण:

int myMoney = 10; 
int yourMoney = 50; 
Swap(myMoney, yourMoney) 

public void Swap(ref int a, ref int b) //No 'temp' variable necessary 
{ 
    a ^= b; 
    b ^= a; 
    a ^= b; 
} 
  • यह बाइनरी अंकगणित में प्रयोग किया जाता है। ** यह वास्तव में एक bool हालांकि उपयोगी **

  • फ्लिप (, मैं नहीं बल्कि प्रयोग करेंगे bool एक्स = true एक्स = एक्स;

उदाहरण:!

public bool flip(ref bool b) 
{ 
    b ^= true; 
} 
संबंधित मुद्दे