जैसा कि हम बिट-वार जानते हैं AND को '&' के रूप में दर्शाया जाता है और लॉजिकल ऑपरेटर को '&&' के रूप में दर्शाया जाता है। उनके बीच कुछ मूलभूत अंतर हैं। ये इस प्रकार हैं -
- लॉजिकल एंड ऑपरेटर बूलियन एक्सप्रेशन पर काम करता है, और केवल बूलियन मान लौटाता है। बिटवाइज़ और ऑपरेटर पूर्णांक, लघु int, लंबे, अहस्ताक्षरित int प्रकार के डेटा पर काम करता है, और उस प्रकार का डेटा भी लौटाता है।
उदाहरण
#include<iostream>
using namespace std;
int main() {
int x = 3; //...0011
int y = 7; //...0111
if (y > 1 && y > x)
cout << "y is greater than 1 AND x" << endl;
int z = x & y; // 0011
cout << "z = "<< z;
} आउटपुट
y is greater than 1 AND x z = 3
- &&ऑपरेटर दूसरे ऑपरेंड का मूल्यांकन नहीं करता है यदि पहला ऑपरेंड गलत हो जाता है। इसी तरह, || ऑपरेटर दूसरे ऑपरेंड का मूल्यांकन नहीं करता है जब पहला सत्य हो जाता है, लेकिन बिटवाइज़ ऑपरेटर जैसे &और | हमेशा उनके ऑपरेंड का मूल्यांकन करें।
उदाहरण
#include<iostream>
using namespace std;
int main() {
int x = 0;
cout << (x && printf("Test using && ")) << endl;
cout << (x & printf("Test using & "));
} आउटपुट
0 Test using & 0