বিট ওয়াইজ অপারেটর
বিটওয়াইজ অপারেটর এবং বিটওয়াইজ অপারেশনগুলো প্রোগ্রামিং এর ক্ষেত্রে অনেক গুরুত্বপূর্ণ ভূমিকা পালন করে। বিট—ওয়াইজ অপারেটর হল সেই সব অপারেটর যেসব অপারেটর কম্পিউটারের বিটের উপর কাজ করে।
কম্পিউটারে সবকিছুই সংরক্ষিত থাকে বাইনরী বা দ্বিমিক সংখ্যা হিসেবে। কম্পিউটার ০ এবং ১ ছাড়া কিছুই বুঝে না। এই প্রতিটি ০ কিংবা ১ হল এক একটি বিট। বিটওয়াইজ অপারেটরগুলো এইসব ০ এবং ১ এর প্রতিটির উপর আলাদা আলাদা ভাবে কাজ করে।
সি প্রোগ্রামিং ল্যাঙ্গুয়েজে ৬টি বিট—ওয়াইজ অপারেটর রয়েছে, যথা-
- AND অপারেটর বা &
- OR অপারেটর বা ।
- XOR অপারেটর বা ^
- NOT অপারেটর বা ~
- Left Shift অপারেটর বা <<
- Right Shift অপারেটর বা >>
AND, OR XOR, NOT- Truth Tables

Left Shift অপারেটর বা <<

Left Shift অপারেটর = ভেরিয়েবলের মান * 2^n , এখানে n হলো Shift Number.
ধরি, ভেরিয়েবলের মান = ৫; শিফ্ট নাম্বার = ২;
সুতরাং, ৫ << ২ = ৫ *২^২ = ৫ * ৪ = ২০
উত্তরঃ ৫ << ২ = ২০
Left Shift এর মান মেমোরির রেঞ্জ পর্যন্ত বাড়তে থাকে। রেঞ্জ এর পরে garbage মান দেয়।
Right Shift অপারেটর বা >>

Right Shift অপারেটর = ভেরিয়েবলের মান / 2^n , এখানে n হলো Shift Number.
ধরি, ভেরিয়েবলের মান = ৩২; শিফ্ট নাম্বার = ২;
সুতরাং, ৩২ >> ২ = ৩২ /২^২ = ৩২ / ৪ = ৮
উত্তরঃ ৩২ >> ২ = ৮
Right Shift এর মান মেমোরির রেঞ্জ পর্যন্ত কমতে থাকে। রেঞ্জ এর পরে garbage মান দেয়।
উদাহরণঃ সি প্রোগ্রামিং কোড দেখিঃ
#include <stdio.h>
int main()
{
unsigned char a = 5, b = 9;
printf("a&b = %d\n", a & b);
printf("a|b = %d\n", a | b);
printf("a^b = %d\n", a ^ b);
printf("~a = %d\n", a = ~a);
printf("b<<1 = %d\n", b << 1);
printf("b>>1 = %d\n", b >> 1);
return 0;
}
আউটপুট আসবে বাইনরী বা দ্বিমিক সংখ্যা কেন্দ্র করে,
a&b = 1 a|b = 13 a^b = 12 ~a = 250 b<<1 = 18 b>>1 = 4
ছবিতে ক্লিক করুন:

ছবিতে ক্লিক করুন:

ছবিতে ক্লিক করুন:

