বিটওয়াইজ অপারেটর বিট (bit) लेভেলে কাজ করে এবং বিট दर বিট অপারেশন সম্পাদন করে।
নিচে বিটওয়াইজ অপারেটরগুলো দেওয়া হলো:
| অপারেটর | বিবরণ | উদাহরণ |
|---|---|---|
| & | বাইনারি AND অপারেটর: যদি দুটি অপারেন্ডে বিট থাকে তবে ফলাফলে কপি করে। | (A & B) = 12, যা 0000 1100 |
| | | বাইনারি OR অপারেটর: যেকোনো একটি অপারেন্ডে বিট থাকলে কপি করে। | (A | B) = 61, যা 0011 1101 |
| ^ | বাইনারি XOR অপারেটর: শুধু একটি অপারেন্ডে বিট সেট থাকলে কপি করে। | (A ^ B) = 49, যা 0011 0001 |
| ~ | বাইনারি Ones Complement অপারেটর: ইউনারি, বিটগুলো ফ্লিপ (flipping) করে। | (~A) = -61, যা 1100 0011 (2's complement) দিয়ে |
| << | বাইনারি Left Shift অপারেটর: বাম অপারেন্ডের মান ডান অপারেন্ড দ্বারা নির্দিষ্ট বিট সংখ্যা만큼 বামে শিফট করে। | A << 2 = 240, যা 1111 0000 |
| >> | বাইনারি Right Shift অপারেটর: বাম অপারেন্ডের মান ডান অপারেন্ড দ্বারা নির্দিষ্ট বিট সংখ্যা만큼 ডানে শিফট করে। | A >> 2 = 15, যা 0000 1111 |
উদাহরণ
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
Console.WriteLine("c এর মান {0}", c);
c = a | b; /* 61 = 0011 1101 */
Console.WriteLine("c এর মান {0}", c);
c = a ^ b; /* 49 = 0011 0001 */
Console.WriteLine("c এর মান {0}", c);
c = ~a; /* -61 = 1100 0011 */
Console.WriteLine("c এর মান {0}", c);
c = a << 2; /* 240 = 1111 0000 */
Console.WriteLine("c এর মান {0}", c);
c = a >> 2; /* 15 = 0000 1111 */
Console.WriteLine("c এর মান {0}", c);
Console.ReadLine();
}
}
}
আউটপুট
c এর মান 12 c এর মান 61 c এর মান 49 c এর মান -61 c এর মান 240 c এর মান 15