যেমন আমরা জানি বিট-ওয়াইজ AND কে '&' এবং লজিক্যাল অপারেটরকে '&&' হিসাবে উপস্থাপন করা হয়। তাদের মধ্যে কিছু মৌলিক পার্থক্য আছে। এইগুলি নিম্নরূপ -
- লজিক্যাল AND অপারেটর বুলিয়ান এক্সপ্রেশনে কাজ করে এবং শুধুমাত্র বুলিয়ান মান প্রদান করে। bitwise 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