c++ এ 3টি বিটওয়াইজ অপারেটর উপলব্ধ। এগুলি হল বিটওয়াইজ AND(&), বিটওয়াইজ OR(|) এবং বিটওয়াইজ XOR(^)।
বিটওয়াইজ এবং অপারেটর (&) প্রথম অপারেন্ডের প্রতিটি বিটকে দ্বিতীয় অপারেন্ডের সংশ্লিষ্ট বিটের সাথে তুলনা করে। উভয় বিট 1 হলে, সংশ্লিষ্ট ফলাফল বিট 1 এ সেট করা হয়। অন্যথায়, সংশ্লিষ্ট ফলাফল বিট 0 এ সেট করা হয়। বিটওয়াইজ ইনক্লুসিভ এবং অপারেটর উভয় অপারেন্ড অবশ্যই অবিচ্ছেদ্য ধরনের হতে হবে। উদাহরণস্বরূপ,
উদাহরণ
নেমস্পেস std ব্যবহার করে#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a & b ) << endl; }
আউটপুট
এটি আউটপুট দেয় −
0
বিটওয়াইজ বা অপারেটর (|) প্রথম অপারেন্ডের প্রতিটি বিটকে দ্বিতীয় অপারেন্ডের সংশ্লিষ্ট বিটের সাথে তুলনা করে। যদি কোন একটি বিট 1 হয়, তাহলে সংশ্লিষ্ট ফলাফল বিটটি 1 এ সেট করা হয়। অন্যথায়, সংশ্লিষ্ট ফলাফল বিটটি 0 এ সেট করা হয়। বিটওয়াইজ ইনক্লুসিভ বা অপারেটরের উভয় অপারেন্ড অবশ্যই অবিচ্ছেদ্য ধরনের হতে হবে। উদাহরণস্বরূপ,
উদাহরণ
নেমস্পেস std ব্যবহার করে#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a | b ) << endl; }
আউটপুট
এটি আউটপুট দেয় −
ffff
বিটওয়াইজ এক্সক্লুসিভ বা অপারেটর (^) তার প্রথম অপারেন্ডের প্রতিটি বিটকে তার দ্বিতীয় অপারেন্ডের সংশ্লিষ্ট বিটের সাথে তুলনা করে। একটি বিট 0 এবং অন্য বিট 1 হলে, সংশ্লিষ্ট ফলাফল বিটটি 1 এ সেট করা হয়। অন্যথায়, সংশ্লিষ্ট ফলাফল বিটটি 0 এ সেট করা হয়। বিটওয়াইজ এক্সক্লুসিভ বা অপারেটরের উভয় অপারেন্ড অবশ্যই অবিচ্ছেদ্য প্রকারের হতে হবে। উদাহরণস্বরূপ,
উদাহরণ
নেমস্পেস std ব্যবহার করে#include <iostream> using namespace std; int main() { short a = 0x5555; // pattern 0101 ... unsigned short b = 0xFFFF; // pattern 1111 ... cout << hex << ( a ^ b ) << endl; }
আউটপুট
এটি আউটপুট দেয় −
aaaa
যা প্যাটার্ন 1010...
প্রতিনিধিত্ব করে