डी प्रोग्रामिंग - ऑपरेटर्स

एक ऑपरेटर एक प्रतीक है जो संकलक को विशिष्ट गणितीय या तार्किक जोड़तोड़ करने के लिए कहता है। D भाषा बिल्ट-इन ऑपरेटरों से समृद्ध है और निम्नलिखित प्रकार के ऑपरेटर प्रदान करती है -

  • अंकगणितीय आपरेटर
  • संबंधपरक संकारक
  • लॉजिकल ऑपरेटर्स
  • बिटवाइज ऑपरेटर्स
  • असाइनमेंट ऑपरेटर्स
  • विविध संचालक

यह अध्याय एक-एक करके अंकगणित, संबंधपरक, तार्किक, बिटवाइज़, असाइनमेंट और अन्य ऑपरेटरों को समझाता है।

अंकगणितीय आपरेटर

निम्न तालिका डी भाषा द्वारा समर्थित सभी अंकगणितीय ऑपरेटरों को दिखाती है। चर मान लेंA 10 और चर रखता है B 20 तब रखती है -

उदाहरण दिखाएं

ऑपरेटर विवरण उदाहरण
+ यह दो ऑपरेंड जोड़ता है। A + B 30 देता है
- यह पहले से दूसरे ऑपरेंड को घटाता है। ए - बी देता है -१०
* यह दोनों ऑपरेंड को गुणा करता है। A * B 200 देता है
/ यह भाजक को भाजक से विभाजित करता है। बी / ए देता है २
% यह पूर्णांक विभाजन के शेष रहता है। ब% ए 0 पर देता है
++ इंक्रीमेंट ऑपरेटर एक के बाद एक पूर्णांक मान बढ़ाता है। A ++ 11 देता है
- डिक्रिप्शन ऑपरेटर एक के बाद पूर्णांक मान को घटाता है। A-- 9 देता है

संबंधपरक संकारक

निम्न तालिका डी भाषा द्वारा समर्थित सभी संबंधपरक ऑपरेटरों को दिखाती है। चर मान लेंA 10 और चर रखता है B 20 रखती है, तो -

उदाहरण दिखाएं

ऑपरेटर विवरण उदाहरण
== जाँच करता है कि दो ऑपरेंड के मान समान हैं या नहीं, यदि हाँ तो स्थिति सच हो जाती है। (ए == बी) सच नहीं है।
! = जाँच करता है कि दो ऑपरेंड के मान समान हैं या नहीं, यदि मान बराबर नहीं हैं तो स्थिति सत्य हो जाती है। (ए! = बी) सच है।
> जाँच करता है कि क्या बाएं संकार्य का मान दाहिने संचालक के मान से अधिक है, यदि हाँ, तो स्थिति सत्य हो जाती है। (ए> बी) सच नहीं है।
< यह जाँचता है कि क्या बाएं संकार्य का मान दाहिने संचालक के मान से कम है, यदि हाँ तो स्थिति सही है। (ए <बी) सच है।
> = जाँच करता है कि क्या बाएं ऑपरेंड का मूल्य सही ऑपरेंड के मूल्य से अधिक या उसके बराबर है, यदि हाँ तो स्थिति सच हो जाती है। (ए> = बी) सच नहीं है।
<= जाँच करता है कि क्या बाएं ऑपरेंड का मूल्य सही ऑपरेंड के मूल्य से कम या बराबर है, यदि हाँ तो स्थिति सच हो जाती है। (ए <= बी) सच है।

लॉजिकल ऑपरेटर्स

निम्न तालिका डी भाषा द्वारा समर्थित सभी तार्किक ऑपरेटरों को दिखाती है। चर मान लेंA 1 और चर रखता है B 0 रखती है, तो -

उदाहरण दिखाएं

ऑपरेटर विवरण उदाहरण
&& इसे लॉजिकल एंड ऑपरेटर कहा जाता है। यदि दोनों ऑपरेशंस गैर-शून्य हैं, तो स्थिति सच हो जाती है। (A && B) गलत है।
|| इसे लॉजिकल या ऑपरेटर कहा जाता है। यदि दोनों संचालकों में से कोई भी गैर-शून्य है, तो स्थिति सच हो जाती है। (ए || बी) सच है
! इसे लॉजिकल नॉट ऑपरेटर कहा जाता है। उपयोग अपने ऑपरेंड की तार्किक स्थिति को उलट देता है। यदि कोई शर्त सत्य है तो लॉजिकल नॉट ऑपरेटर गलत साबित करेगा। ! (A && B) सत्य है।

बिटवाइज ऑपरेटर्स

बिटवाइज़ ऑपरेटर बिट पर काम करते हैं और बिट-बाय-बिट ऑपरेशन करते हैं। सत्य सारणी &।, और ^ के लिए निम्नानुसार हैं -

पी क्यू पी क्यू पी | क्यू p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

मान लें कि ए = 60; और बी = 13. द्विआधारी प्रारूप में वे निम्नानुसार होंगे -

ए = 0011 1100

B = 0000 1101

-----------------

A & B = 0000 1100

ए | बी = ००११ ११०१

ए ^ बी = 0011 0001

~ ए = ११०० ००११

डी भाषा द्वारा समर्थित बिटवाइज ऑपरेटरों को निम्न तालिका में सूचीबद्ध किया गया है। चर ए मान लें 60 और चर बी 13 रखता है, तो -

उदाहरण दिखाएं

ऑपरेटर विवरण उदाहरण
और बाइनरी और ऑपरेटर परिणाम के लिए थोड़ा सा कॉपी करता है यदि यह दोनों ऑपरेंड में मौजूद है। (A & B) 12, मीन्स 0000 1100 देगा।
| बाइनरी या ऑपरेटर थोड़ा सा कॉपी करता है अगर यह किसी भी ऑपरेंड में मौजूद है। (ए | बी) 61 देता है। मीन्स 0011 1101।
^ बाइनरी एक्सओआर ऑपरेटर बिट को कॉपी करता है अगर यह एक ऑपरेंड में सेट होता है लेकिन दोनों नहीं। (ए ^ बी) 49 देता है। मतलब 0011 0001
~ बाइनरी ओन्स कंप्लीट ऑपरेटर, एकात्मक है और इसमें 'फ्लिपिंग' बिट्स का प्रभाव है। (~ ए) -61 देता है। 2 के पूरक रूप में 1100 0011 का मतलब है।
<< बाइनरी लेफ्ट शिफ्ट ऑपरेटर। बाएं ऑपरेंड वैल्यू को दाएं ऑपरेंड द्वारा निर्दिष्ट बिट्स की संख्या से छोड़ दिया जाता है। A << 2 दे 240. मतलब 1111 0000
>> बाइनरी राइट शिफ्ट ऑपरेटर। बाएं ऑपरेंड वैल्यू को दाएं ऑपरेंड द्वारा निर्दिष्ट बिट्स की संख्या से दाएं स्थानांतरित किया जाता है। ए >> 2 दे 15. 1500 1111 का मतलब है।

असाइनमेंट ऑपरेटर्स

निम्नलिखित असाइनमेंट ऑपरेटरों को डी भाषा द्वारा समर्थित है -

उदाहरण दिखाएं

ऑपरेटर विवरण उदाहरण
= यह सरल असाइनमेंट ऑपरेटर है। यह दाईं ओर के ऑपरेंड से लेफ्ट साइड ऑपरेंड तक के मान प्रदान करता है C = A + B C में A + B का मान प्रदान करता है
+ = यह जोड़ने और असाइनमेंट ऑपरेटर है। यह बाएं ऑपरेंड में दाईं ओर ऑपरेंड जोड़ता है और परिणाम को बाएं ऑपरेंड में असाइन करता है C + = A C = C + A के बराबर है
- = यह घटाना और असाइनमेंट ऑपरेटर है। यह बाएं ऑपरेंड से दाएं ऑपरेंड को घटाता है और लेफ्ट ऑपरेंड को रिजल्ट सौंपता है। C - = A C = C - A के बराबर है
* = यह गुणा और असाइनमेंट ऑपरेटर है। यह बाएं ऑपरेंड के साथ दाएं ऑपरेंड को गुणा करता है और बाएं ऑपरेंड को परिणाम प्रदान करता है। C * = A C = C * A के बराबर है
/ = यह विभाजन और असाइनमेंट ऑपरेटर है। यह बाएं ऑपरेंड को दाएं ऑपरेंड के साथ विभाजित करता है और परिणाम को बाएं ऑपरेंड को सौंपता है। C / = A C = C / A के बराबर है
% = यह मापांक और असाइनमेंट ऑपरेटर है। यह दो ऑपरेंड का उपयोग करके मापांक लेता है और परिणाम को बाएं ऑपरेंड में असाइन करता है। C% = A C = C% A के बराबर है
<< = यह लेफ्ट शिफ्ट और असाइनमेंट ऑपरेटर है। C << = 2 C = C << 2 के समान है
>> = यह राइट शिफ्ट और असाइनमेंट ऑपरेटर है। C >> = 2 C = C >> 2 के समान है
और = यह बिटवाइज़ और असाइनमेंट ऑपरेटर है। C & = 2 C = C & 2 के समान है
^ = यह बिटवाइज़ एक्सक्लूसिव OR या असाइनमेंट ऑपरेटर है। C ^ = 2 C = C ^ 2 के समान है
| = यह बिटवाइन समावेशी या असाइनमेंट ऑपरेटर है C | = 2 C = C के समान है 2

विविध संचालक - साइज़ोफ़ और टर्नेरी

सहित कुछ अन्य महत्वपूर्ण ऑपरेटर हैं sizeof तथा ? : डी भाषा द्वारा समर्थित।

उदाहरण दिखाएं

ऑपरेटर विवरण उदाहरण
इस आकार का() एक चर का आकार देता है। sizeof (a), जहां a पूर्णांक है, 4 लौटाता है।
और एक चर का पता देता है। &ए; चर का वास्तविक पता देता है।
* एक चर की ओर इशारा करता है। *ए; एक चर के लिए सूचक देता है।
? : सशर्त अभिव्यक्ति यदि स्थिति सत्य है तो मान X: अन्यथा मान Y।

ऑपरेटरों में डी में वरीयता

ऑपरेटर पूर्वता एक अभिव्यक्ति में शब्दों के समूहीकरण को निर्धारित करती है। यह प्रभावित करता है कि एक अभिव्यक्ति का मूल्यांकन कैसे किया जाता है। कुछ ऑपरेटरों को दूसरों पर वरीयता दी जाती है।

उदाहरण के लिए, गुणा ऑपरेटर में अतिरिक्त ऑपरेटर की तुलना में अधिक पूर्वता है।

आइए हम एक अभिव्यक्ति पर विचार करें

x = 7 + 3 * 2।

यहाँ, x को 13 नहीं, 20 को सौंपा गया है। साधारण कारण यह है, ऑपरेटर * में + से अधिक पूर्वता है, इसलिए 3 * 2 की गणना पहले की जाती है और फिर परिणाम 7 में जोड़ा जाता है।

यहां, सबसे अधिक पूर्वता वाले ऑपरेटर तालिका के शीर्ष पर दिखाई देते हैं, सबसे नीचे वाले लोग सबसे नीचे दिखाई देते हैं। एक अभिव्यक्ति के भीतर, उच्च पूर्वता ऑपरेटरों का मूल्यांकन पहले किया जाता है।

उदाहरण दिखाएं

वर्ग ऑपरेटर संबद्धता
पोस्टफ़िक्स () [] -> ++ - - बाएं से दाएं
एकल + -! ~ ++ - - (प्रकार) * & sizeof दाएं से बाएं
गुणक * *% बाएं से दाएं
additive + - बाएं से दाएं
खिसक जाना << >> बाएं से दाएं
रिलेशनल <<=>> = बाएं से दाएं
समानता ==! = बाएं से दाएं
बिटवाइज़ और और बाएं से दाएं
बिटवाइज़ XOR ^ बाएं से दाएं
बिटवार या | बाएं से दाएं
तार्किक और && बाएं से दाएं
तार्किक या || बाएं से दाएं
सशर्त ?: दाएं से बाएं
असाइनमेंट = + = - = * = / =% = >> = << = & = ^ = = | = | दाएं से बाएं
अल्पविराम , बाएं से दाएं