मेरे सिर के ऊपर से, मैं एक ऐसी भाषा के बारे में नहीं सोच सकता जिसका मैंने उपयोग किया है जिसमें तार्किक अनन्य या ऑपरेटर था, लेकिन सभी के पास तार्किक और bitwise and
और or
ऑपरेटर हैं।क्यों कई भाषाओं में लॉजिकल एक्सओआर ऑपरेटर की कमी है?
चारों ओर देखकर, मुझे ढूंढने का एकमात्र कारण यह अनन्य था या छोटा सर्किट नहीं किया जा सकता था, इसलिए एक तार्किक संस्करण बेकार होगा, जिसे मैं वास्तव में मामला नहीं देख सकता। कारण यह मेरे ध्यान में आया कि अधिकांश भाषाओं में इसकी कमी है कि मुझे इसकी आवश्यकता है (मैं रूबी का उपयोग कर रहा था, इसलिए मैंने एक पूर्णांक को एक बूलियन में बदलने के लिए एक विधि लिखी, और फिर बिटवाईओ एक्सओआर का उपयोग करें, जो बूलियन लॉजिकल एक्सओआर की तरह काम करता है) ।
बस बिटवाई एक्सओआर का उपयोग करना या तो काम नहीं करता है, क्योंकि यह एक अलग परिणाम देगा।
0b0001^0b1000 = 0b1001 (True)
0b0001 XOR 0b1000 = False
// Where^is bitwise exclusive or and XOR is logical exclusive or
// Using != (not equal to) also doesn't work
0b0001 != 0b1000 = True
तो क्यों अधिकांश भाषाओं में तार्किक अनन्य या ऑपरेटर शामिल नहीं है?
संपादित: मैं कैसे !=
भी जो मैं चाहता भी नहीं करता है के साथ एक उदाहरण जोड़ा, यह लगभग करता है, लेकिन एक ही समस्या यह है कि बिटवाइज़ विशेष का उपयोग कर या क्या करता है में गिर जाता है, यह केवल काम करता है अगर आप आप जानते हैं शून्य या एक के साथ काम कर रहे हैं, और कोई अन्य नंबर नहीं।
और ध्यान दें, यह माना जाता है कि भाषा शून्य के रूप में शून्य और गैर-शून्य के रूप में उपयोग करती है।
आपके दूसरे उदाहरण में, यह एक ऐसी भाषा मानता है जो सत्य के लिए गैर-शून्य का उपयोग करता है। – caskey
क्या आप एक उदाहरण दे सकते हैं कि आपका लॉजिकल एक्सओआर बराबर से अलग कैसे है? –
* असली * यहां है "आप गैर-बुलियन मूल्यों पर लॉजिकल ऑपरेटरों का उपयोग करने का प्रयास क्यों कर रहे हैं?" यह शुरू करने के लिए अर्थपूर्ण रूप से अमान्य और खराब प्रोग्रामिंग अभ्यास है। – RBarryYoung