1. বিটওয়াইজ &অপারেটর

আমরা আগে বলেছিলাম যে সমস্ত ডেটা বাইনারি উপস্থাপনায় মেমরিতে সংরক্ষণ করা হয়। তাই বেশ অনেক দিন আগে, প্রোগ্রামাররা বাইনারি সংখ্যার সাথে কাজ করার জন্য অনেক আকর্ষণীয় উপায় নিয়ে এসেছিল। উদাহরণস্বরূপ, জাভাতে লজিক্যাল অপারেটর রয়েছে যেগুলি একটি সংখ্যার বাইনারি উপস্থাপনার বিটের উপর কাজ করে: &(AND), | (OR), ~(NOT or complement) এবং ^(XOR - এক্সক্লুসিভ বা)।

a & b
Bitwise &(AND) অপারেটর

এই অপারেটরটি লজিক্যাল (AND) অপারেটরের অনুরূপ &, শুধুমাত্র এটি একটি একক অ্যাম্পারস্যান্ড দ্বারা চিহ্নিত করা হয়, দুটি নয়:

এবং এটি পৃথক বিট প্রয়োগ করা হয়. প্রতিটি অপারেন্ডকে বিটগুলির একটি অ্যারে হিসাবে বিবেচনা করা হয় এবং iফলাফলের তম বিটটি iদুটি অপারেন্ডের প্রতিটির তম বিট ব্যবহার করে গণনা করা হয়।

ফলাফলের প্রথম বিটটি সংখ্যার প্রথম বিট a এবং সংখ্যার প্রথম বিটের উপর ভিত্তি করে গণনা করা হবে b, দ্বিতীয় বিট — সংখ্যার দ্বিতীয় বিট a এবং সংখ্যার দ্বিতীয় বিট bইত্যাদির উপর ভিত্তি করে।

(AND) অপারেটর &মানে "সংখ্যাটির সংশ্লিষ্ট বিটটি একের সমান হলেই ফলাফলপ্রাপ্ত বিটটি aএকের ANDসমান bহয়":

1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

উদাহরণ:

উদাহরণ ফলাফল
0b0011 & 0b1010
0b0010
0b1111 & 0b0000
0b0000
0b1010 & 0b0101
0b0000
0b1111 & 0b1010
0b1010

2. বিটওয়াইজ |অপারেটর

এই অপারেটরটি লজিক্যাল |(OR) অপারেটরের সাথে খুব মিল, শুধুমাত্র এটি একটি একক উল্লম্ব লাইন দ্বারা চিহ্নিত করা হয়, দুটি নয়:

a | b

এবং এটি পৃথক বিট প্রয়োগ করা হয়. প্রতিটি অপারেন্ডকে বিটের একটি অ্যারে হিসাবে বিবেচনা করা হয় এবং ফলাফলের ith বিট দুটি অপারেন্ডের প্রতিটির ith বিট ব্যবহার করে গণনা করা হয়।

বিটওয়াইজ (OR) অপারেটর মানে " সংখ্যাটির সংশ্লিষ্ট বিট একের সমান |হলে ফলাফলের বিটটি একের সমান":aORb

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

উদাহরণ:

উদাহরণ ফলাফল
0b0011 | 0b1010
0b1011
0b1110 | 0b0000
0b1110
0b1010 | 0b0101
0b1111
0b1111 | 0b1010
0b1111

শুধুমাত্র যখন উভয় সংখ্যার সংশ্লিষ্ট বিট (একই অবস্থানে থাকা বিট) শূন্য হয় ফলাফলের সংশ্লিষ্ট বিট শূন্যের সমান।



3. বিটওয়াইজ ^(XOR বা "এক্সক্লুসিভ বা") অপারেটর

অপারেটর XOR, এছাড়াও একচেটিয়া উচ্চারিত হয় বা , চিহ্ন দ্বারা চিহ্নিত করা হয় ^। এটি কীবোর্ডে প্রবেশ করতে, shift + 6 টিপুন (একটি ইংরেজি কীবোর্ড লেআউটে)।

a ^ b

এই অপারেটরটি অপারেটরের সাথে কিছুটা সাদৃশ্যপূর্ণ OR, যার মধ্যে এটির একটি অনুরূপ নাম রয়েছে:XOR

বিটওয়াইজ ^(XOR) অপারেটরের অর্থ হল "ফলিত বিটটি একের সমান যদি সংখ্যাটির সংশ্লিষ্ট বিটটি aএকের সমান হয় এবং একই সময়ে উভয়টি না হলেও ORসংখ্যাটির সংশ্লিষ্ট বিটটি একের সমান হয়":b

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

উদাহরণ:

উদাহরণ ফলাফল
0b0011 ^ 0b1010
0b1001
0b1110 ^ 0b0000
0b1110
0b1010 ^ 0b0101
0b1111
0b1111 ^ 0b1010
0b0101

উভয় সংখ্যার সংশ্লিষ্ট বিট (একই অবস্থানে থাকা বিট) ভিন্ন হলেই ফলাফলের সংশ্লিষ্ট বিট একের সমান । যদি বিটগুলি একই হয় , ফলে বিটটি শূন্যের সমান



4. Bitwise ~(NOT, Complement) অপারেটর

আমি মনে করি আপনি ইতিমধ্যে এটা কি অনুমান করতে পারেন. এই অপারেটরটি যৌক্তিক !(NOT) অপারেটরের সাথে খুব সাদৃশ্যপূর্ণ, তবে এটি একটি টিল্ড দ্বারা চিহ্নিত করা হয় , একটি বিস্ময়বোধক বিন্দু নয়:

~a

এটি একটি unary অপারেটর, যার মানে এটি একটি একক সংখ্যার জন্য প্রযোজ্য, দুটি নয়। এটি এই একক অপারেন্ডের আগে উপস্থিত হয়।

বিটওয়াইজ ~অপারেটর মানে "সংখ্যাটির সংশ্লিষ্ট বিটটি aশূন্য হলে ফলাফল বিটটি এক হয় এবং সংখ্যাটির সংশ্লিষ্ট বিটটি aএক হলে এটি শূন্য":

~1 = 0
~0 = 1

উদাহরণ:

উদাহরণ ফলাফল
~0b0011
0b1100
~0b0000
0b1111
~0b0101
0b1010
~0b1111
0b0000

এই অপারেটরটি কেবল বিট পরিবর্তন করে এবং বিটগুলিকে পরিবর্তন 1করে ।001