यहां हम एक पहेली देखेंगे। मान लीजिए नीचे दिया गया एक प्रोग्राम है, हमें बताना है कि आउटपुट क्या होगा और क्यों?
उदाहरण
#includeusing namespace std; int main() { int x = 0xab; ~x; cout << hex << x; }
तो आउटपुट क्या होगा? ~x पूरक ऑपरेशन कर रहा है। तो क्या यह हेक्स रूप में पूरक परिणाम दिखाएगा?
आउटपुट निम्नलिखित जैसा है
आउटपुट
ab
तो, कोई परिवर्तन नहीं। लेकिन क्यों? कारण यह है कि ~x x को उसके पूरक रूप में परिवर्तित कर रहा है, लेकिन वह मान किसी चर को असाइन नहीं किया गया है। अभिव्यक्ति R-मान अभिव्यक्ति है। जब तक L-मान का उपयोग नहीं किया जाता, तब तक यह किसी चर में संग्रहीत नहीं होगा। यदि हम L-मान रखते हैं तो यह इस तरह दिखाई देगा -
उदाहरण
#includeusing namespace std; int main() { int x = 0xab; x = ~x; cout << hex << x; }
आउटपुट
ffffff54