मैं C # में नया हूं और इस सत्य तालिका को प्रदान करने के लिए XNOR संचालक नहीं मिला :
aba XNOR b ---------------- TTT TFF एफटीएफ FFT
क्या इसके लिए कोई विशिष्ट ऑपरेटर है? या मुझे उपयोग करने की आवश्यकता है? (ए ^ बी)?
मैं C # में नया हूं और इस सत्य तालिका को प्रदान करने के लिए XNOR संचालक नहीं मिला :
aba XNOR b ---------------- TTT TFF एफटीएफ FFT
क्या इसके लिए कोई विशिष्ट ऑपरेटर है? या मुझे उपयोग करने की आवश्यकता है? (ए ^ बी)?
जवाबों:
XNOR बस बूलियंस पर समानता है; उपयोग करें A == B
।
यह याद करने के लिए एक आसान बात है, क्योंकि समानता आमतौर पर बूलियन पर लागू नहीं होती है। और ऐसी भाषाएँ भी हैं जहाँ यह आवश्यक रूप से काम नहीं करेगा। उदाहरण के लिए, सी में, किसी भी गैर-शून्य स्केलर मान को सही माना जाता है, इसलिए दो "सही" मान असमान हो सकते हैं। लेकिन सवाल टैग किया गया थासी#, जो हमारे पास है, अच्छी तरह से व्यवहार किए गए बूलियन कहेंगे।
ध्यान दें कि यह बिटवाइज़ ऑपरेशंस के लिए सामान्य नहीं है, जहाँ आप चाहते हैं 0x1234 XNOR 0x5678 == 0xFFFFBBB3
(32 बिट्स मानकर)। उसके लिए, आपको अन्य कार्यों से निर्माण करने की आवश्यकता है, जैसे ~(A^B)
। (नोट: ~
नहीं !
)
!
ऑपरेटर int
को "अच्छी तरह से व्यवहार करने वाले" बूलियन में परिवर्तित करने के लिए इस्तेमाल किया जा सकता है !a==!b
:।
!!
(कि दो तार्किक "नहीं" ऑपरेटरों है) के लिए किसी भी अदिश मूल्य को सामान्य 0
या 1
।
XOR = A या B, लेकिन A & B या न तो (बराबर नहीं हो सकता! [!])
XNOR इसलिए सटीक oppoiste है, और इसे आसानी से == या === द्वारा दर्शाया जा सकता है।
हालांकि, गैर-बूलियन मामले इस उदाहरण में समस्याएं पेश करते हैं:
a = 5
b = 1
if (a == b){
...
}
इसके बजाय, इसका उपयोग करें:
a = 5
b = 1
if((a && b) || (!a && !b)){
...
}
या
if(!(a || b) && (a && b)){
...
}
पहला उदाहरण गलत (5! = 1) वापस आएगा, लेकिन दूसरा सच लौटा देगा (एक [मूल्य?] और बी [मूल्य?] के मूल्य एक ही बूलियन लौटाते हैं, सही (मान = नहीं 0 / एक मान है) )
पूरी मिसाल सिर्फ उलट (a || b) &&! (a && b) (XOR) गेट की है
नहीं, आपको उपयोग करने की आवश्यकता है !(A^B)
हालांकि मुझे लगता है कि आप अपने खुद के XNOR बनाने के लिए ऑपरेटर ओवरलोडिंग का उपयोग कर सकते हैं।
आप ===
XNOR के लिए ऑपरेटर का उपयोग कर सकते हैं । बस आपको कन्वर्ट करने a
और b
बूल करने की आवश्यकता है ।
if (!!a === !!b) {...}
===
ऑपरेटर नहीं है
===
गैर-संचालक ऑपरेटर जावास्क्रिप्ट है और !!
मूल्यांकन में एक मूल्य से पहले डबल c # या में मान्य नहीं है
==
बूलियन ऑपरेंड्स के लिए जाना जाता है ...