কম্পিউটার টিউটোরিয়াল

C++-এ বিভিন্ন ধরণের অপারেটর

C++-এ অনেক ধরণের অপারেটর রয়েছে। এগুলো को বড়ভাবে নিম্নলিখিত ক্যাটাগরিতে ভাগ করা যায়: এরিথমেটিক, রিলেশনাল, লজিক্যাল, বিটওয়ারাইজ, অ্যাসাইনমেন্ট এবং অন্যান্য অপারেটর।

এরিথমেটিক অপারেটর

ধরি ভেরিয়েবল A-র মান 10 এবং ভেরিয়েবল B-র মান 20, তবে:

অপারেটর বিবরণ
+ দুই অপারেন্ড যোগ করে। A + B = 30
- দ্বিতীয় অপারেন্ডকে প্রথম থেকে বিয়োগ করে। A - B = -10
* দুই অপারেন্ড গুণ করে। A * B = 200
/ নিউমেরেটরকে ডিনোমিনেটর দিয়ে ভাগ করে। B / A = 2
% মডুলাস অপারেটর এবং পূর্ণসংখ্যা ভাগশেষ। B % A = 0
++ ইনক্রিমেন্ট অপারেটর, পূর্ণসংখ্যার মান ১ বাড়ায়। A++ = 11
-- ডিক্রিমেন্ট অপারেটর, পূর্ণসংখ্যার মান ১ কমায়। A-- = 9

রিলেশনাল অপারেটর

ধরি ভেরিয়েবল A-র মান 10 এবং ভেরিয়েবল B-র মান 20, তবে:

অপারেটর বিবরণ
== দুই অপারেন্ডের মান সমান কিনা যাচাই করে, সমান হলে কন্ডিশন সত্য। (A == B) असত্য।
!= দুই অপারেন্ডের মান সমান কিনা যাচাই করে, সমান না হলে কন্ডিশন সত্য। (A != B) সত্য।
> বাম অপারেন্ডের মান ডান অপারেন্ডের চেয়ে বড় কিনা যাচাই করে, বড় হলে কন্ডিশন সত্য। (A > B) অসত্য।
< বাম অপারেন্ডের মান ডান অপারেন্ডের চেয়ে ছোট কিনা যাচাই করে, ছোট হলে কন্ডিশন সত্য। (A < B) সত্য।
>= বাম অপারেন্ডের মান ডান অপারেন্ডের চেয়ে বড় বা সমান কিনা যাচাই করে, হলে কন্ডিশন সত্য। (A >= B) অসত্য।
<= বাম অপারেন্ডের মান ডান অপারেন্ডের চেয়ে ছোট বা সমান কিনা যাচাই করে, হলে কন্ডিশন সত্য। (A <= B) সত্য।

লজিক্যাল অপারেটর

ধরি ভেরিয়েবল A-র মান 1 এবং ভেরিয়েবল B-র মান 0, তবে:

অপারেটর বিবরণ
&& লজিক্যাল AND অপারেটর। দুটি অপারেন্ডই নন-জিরো হলে কন্ডিশন সত্য। (A && B) অসত্য।
|| লজিক্যাল OR অপারেটর। যেকোনো একটি অপারেন্ড নন-জিরো হলে কন্ডিশন সত্য। (A || B) সত্য।
! লজিক্যাল NOT অপারেটর। অপারেন্ডের লজিক্যাল স্টেট বিপরীত করে। !(A && B) সত্য।

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

বিটওয়ারাইজ অপারেটর বিটের ওপর কাজ করে এবং বিট-বাই-বিট অপারেশন সম্পাদন করে। &, |, এবং ^-এর ট্রুথ টেবিল নিচে দেওয়া হলো:

p  q  p&q  p|q  p^q
0  0  0    0    0
0  1  0    1    1
1  1  1    1    0
1  0  0    1    1

ধরি A = 60 এবং B = 13; বাইনারি ফরম্যাটে এগুলো হবে:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A  = 1100 0011
অপারেটর বিবরণ
& বাইনারি AND অপারেটর: যদি বিট দুটি অপারেন্ডে থাকে তবে রেজাল্টে কপি করে। (A & B) = 12 (0000 1100)
| বাইনারি OR অপারেটর: যদি বিট যেকোনো একটি অপারেন্ডে থাকে তবে রেজাল্টে কপি করে। (A | B) = 61 (0011 1101)
^ বাইনারি XOR অপারেটর: বিট শুধু একটি অপারেন্ডে সেট থাকলে (দুটি নয়) কপি করে। (A ^ B) = 49 (0011 0001)
~ বাইনারি Ones Complement অপারেটর: একক অপারেটর, বিট ফ্লিপ করে। (~A) = -61 (2's কমপ্লিমেন্ট ফর্মে 1100 0011)
<< বাইনারি Left Shift অপারেটর: বাম অপারেন্ডের মান ডান অপারেন্ড দ্বারা নির্দিষ্ট বিট সংখ্যা বামে সরানো হয়। A << 2 = 240 (1111 0000)
>> বাইনারি Right Shift অপারেটর: বাম অপারেন্ডের মান ডান অপারেন্ড দ্বারা নির্দিষ্ট বিট সংখ্যা ডানে সরানো হয়। A >> 2 = 15 (0000 1111)

অ্যাসাইনমেন্ট অপারেটর

অপারেটর বিবরণ
= সিম্পল অ্যাসাইনমেন্ট অপারেটর: ডান পক্ষের মান বাম পক্ষের ভেরিয়েবলে অ্যাসাইন করে। C = A + B
+= Add AND অ্যাসাইনমেন্ট: ডান অপারেন্ডকে বামে যোগ করে ফলাফল বামে সংরক্ষণ করে। C += A ↔ C = C + A
-= Subtract AND অ্যাসাইনমেন্ট: ডান অপারেন্ডকে বাম থেকে বিয়োগ করে ফলাফল বামে সংরক্ষণ করে। C -= A ↔ C = C - A
*= Multiply AND অ্যাসাইনমেন্ট: ডান অপারেন্ডকে বাম দিয়ে গুণ করে ফলাফল বামে সংরক্ষণ করে। C *= A ↔ C = C * A
/= Divide AND অ্যাসাইনমেন্ট: বাম অপারেন্ডকে ডান দিয়ে ভাগ করে ফলাফল বামে সংরক্ষণ করে। C /= A ↔ C = C / A
%= Modulus AND অ্যাসাইনমেন্ট: দুটি অপারেন্ড দিয়ে মডুলাস लेकर ফলাফল বামে সংরক্ষণ করে। C %= A ↔ C = C % A
<<= Left shift AND অ্যাসাইনমেন্ট। C <<= 2 ↔ C = C << 2
>>= Right shift AND অ্যাসাইনমেন্ট। C >>= 2 ↔ C = C >> 2
&= Bitwise AND অ্যাসাইনমেন্ট। C &= 2 ↔ C = C & 2
^= Bitwise exclusive OR এবং অ্যাসাইনমেন্ট। C ^= 2 ↔ C = C ^ 2
|= Bitwise inclusive OR এবং অ্যাসাইনমেন্ট। C |= 2 ↔ C = C | 2

বিবিধ অপারেটর (Misc Operators)

ক্রমিক নং অপারেটর
1 sizeof অপারেটর একটি ভেরিয়েবলের সাইজ রিটার্ন করে। যেমন, sizeof(a), যেখানে 'a' ইন্টিজার, 4 রিটার্ন করবে।
2 কন্ডিশনাল অপারেটর (?:) কন্ডিশন সত্য হলে X-এর মান রিটার্ন করে, অন্যথায় Y-এর মান।
3 কমা অপারেটর অপারেশন-এর একটি সিকোয়েন্স সম্পাদন করায়। পুরো কমা এক্সপ্রেশনের মান হলো শেষ এক্সপ্রেশনের মান।
4 (ডট) এবং -> (এরো) মেম্বার অপারেটর: ক্লাস, স্ট্রাকচার এবং ইউনিয়নের ইনডিভিজুয়াল মেম্বার রেফারেন্স করতে ব্যবহৃত হয়।
5 () - কাস্টিং অপারেটর: এক ডেটা টাইপকে অন্য ডেটা টাইপে রূপান্তর করে। যেমন, int(2.2000) রিটার্ন করবে 2।
6 পয়েন্টার অপারেটর & একটি ভেরিয়েবলের অ্যাড্রেস রিটার্ন করে। যেমন &a; ভেরিয়েবলের প্রকৃত অ্যাড্রেস দেবে।
7 পয়েন্টার অপারেটর * একটি ভেরিয়েবলের পয়েন্টার। যেমন *var; var-এর পয়েন্টার।
  1. পাইথনে বিভিন্ন ধরনের বিটওয়াইজ অপারেটর কী কী?

  2. পাইথনে বিভিন্ন ধরনের অ্যাসাইনমেন্ট অপারেটর কী কী?

  3. পাইথনে বিভিন্ন ধরনের আইডেন্টিটি অপারেটর কী কী?

  4. পাইথনে বিভিন্ন বেসিক অপারেটর কী কী?