কম্পিউটিং এবং ডিজিটাল ইলেকট্রনিক্স জগতে বাইনারি লজিক্যাল অপারেশনগুলি মৌলিক। তারা কেবল গণনা এবং ডেটা প্রক্রিয়াকরণের অনুমতি দেয় না, তবে তারা বর্তমান কম্পিউটারগুলির অপারেশনের ভিত্তিও। প্রতিটি অপারেশন বিটগুলি পরিচালনা করার জন্য ডিজাইন করা হয়েছে, 0 এবং 1 এর মান, যা আমাদের দৈনন্দিন জীবনে ব্যবহার করা ডিভাইসগুলির বৈদ্যুতিক সার্কিটগুলির চালু এবং বন্ধ অবস্থাকে উপস্থাপন করে।
বাইনারি লজিকের ধারণাটি দীর্ঘদিন ধরে ব্যবহার করা হয়েছে, কিন্তু ডিজিটাল প্রযুক্তির বিকাশের সাথে এর গুরুত্ব দ্রুত বৃদ্ধি পেয়েছে। এই নিবন্ধে, আমরা বিটগুলির একটি সেটে সম্পাদিত বিভিন্ন যৌক্তিক ক্রিয়াকলাপগুলি গভীরভাবে অন্বেষণ করব, তারা কীভাবে কাজ করে এবং কোথায় সেগুলি প্রায়শই প্রয়োগ করা হয়। আপনি প্রথমবারের মতো এই বিষয়ের মুখোমুখি একজন ছাত্র হন বা আপনার ইতিমধ্যেই এই এলাকায় অভিজ্ঞতা রয়েছে, আপনি দরকারী এবং বিশদ তথ্য পাবেন।
বাইনারি লজিকের ভূমিকা
বাইনারি লজিক কাজ করে দুটি অবস্থা: 0 এবং 1, যা শাস্ত্রীয় যুক্তিতে মিথ্যা এবং সত্যের সাথে মিলে যায়। এটি কম্পিউটার সিস্টেম এবং ডিজিটাল ডিভাইসগুলিতে প্রচুর পরিমাণে ডেটা প্রক্রিয়া করার অনুমতি দেয়। এই বিটের উপর সঞ্চালিত অপারেশন বলা হয় বুলিয়ান অপারেশন, যা বুলিয়ান বীজগণিতের হৃদয় গঠন করে। এই দুটি রাজ্য অত্যন্ত দ্রুত এবং সুনির্দিষ্ট উপায়ে সার্কিট এবং সফ্টওয়্যার দ্বারা যাচাই এবং প্রক্রিয়াকরণ করা যেতে পারে এমন শর্তগুলিকে সংজ্ঞায়িত করার অনুমতি দেয়।
প্রধান লজিক্যাল অপারেশন
বাইনারি সংখ্যার যৌক্তিক ক্রিয়াকলাপগুলি বিট বিট করে সঞ্চালিত হয়, অর্থাৎ, প্রতিটি বিট অন্য ইনপুটে তার প্রতিরূপের বিপরীতে পৃথকভাবে মূল্যায়ন করা হয়। প্রতিটি বিটের ফলাফল তারপর অপারেশনের চূড়ান্ত ফলাফল তৈরি করতে একত্রিত হয়। সবচেয়ে সাধারণ মৌলিক অপারেশন নীচে বর্ণনা করা হয়.
এবং অপারেশন (যৌক্তিক এবং)
AND অপারেশনটি ইনপুট হিসাবে দুটি বিট নেওয়ার জন্য দায়ী এবং একটি আউটপুট তৈরি করে যা হবে 1 শুধুমাত্র যদি উভয় ইনপুট বিট 1 হয়. অন্যথায়, আউটপুট 0 হবে। অন্য কথায়, একটি সত্য ফলাফল তৈরি করতে উভয় বিট সত্য হতে হবে।
AND অপারেশনের উদাহরণ:
1010 এবং 1100 = 1000
এই উদাহরণে, ফলাফলে শুধুমাত্র উভয় ইনপুটে সত্য বিটগুলি চালু থাকে (অর্থাৎ তারা 1)।
বা অপারেশন (যৌক্তিক বা)
অন্যদিকে, OR অপারেশনটি ইনপুট হিসাবে দুটি বিট নেয় এবং একটি ফেরত দেবে 1 যদি অন্তত একটি ইনপুট বিট 1 হয়. অর্থাৎ দুটির একটি (বা উভয়) সত্য হলে ফলাফলও সত্য হবে।
OR অপারেশনের উদাহরণ:
1010 বা 1100 = 1110
এই ক্ষেত্রে, যেকোনো একটি বা উভয় ইনপুটে সত্য যে কোনো বিট আউটপুটেও সত্য হবে।
অপারেশন নয় (যৌক্তিক নয়)
NOT অপারেশনটি সবচেয়ে সহজ, যেহেতু এটির ইনপুট হিসাবে শুধুমাত্র একটি বিট প্রয়োজন। এর কাজ হল ইনপুট বিটের মান বিপরীত করা। এইভাবে, ইনপুট 0 হলে, আউটপুট হবে 1, এবং বিপরীতভাবে.
অপারেশন নয় উদাহরণ:
1010 = 0101 নয়
এই উদাহরণে, ফলাফলে সমস্ত বিট উল্টানো হয়েছে।
অতিরিক্ত লজিক্যাল অপারেশন
তিনটি প্রধান ছাড়াও, অন্যান্য কম ব্যবহৃত যৌক্তিক ক্রিয়াকলাপ রয়েছে যা নির্দিষ্ট সিস্টেম এবং পরিস্থিতিতে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে।
NAND অপারেশন (যৌক্তিক নয় এবং)
NAND হল AND-এর সংমিশ্রণ এবং একটি নয় উল্টো। এটি যখনই 1 এর আউটপুট তৈরি করবে অন্তত একটি ইনপুট বিট হল 0. উভয় ইনপুট বিট 0 হলে এটি শুধুমাত্র 1 প্রদান করবে।
NOR (যৌক্তিক নয় বা) অপারেশন
বা OR অপারেশনের বিপরীত নয়। এটি এমনভাবে পরিবর্তিত হয় যে এর ফলাফল শুধুমাত্র 1 হবে যদি উভয় ইনপুট বিট 0 হয়. অন্যথায় এটি 0 ফেরত দেবে।
XOR (এক্সক্লুসিভ বা) অপারেশন
XOR হল একটি লজিক্যাল অপারেশন যা ইনপুট বিটগুলি একে অপরের থেকে আলাদা হলেই 1 প্রদান করে। যদি উভয়ই সমান হয় (উভয় 0 বা উভয় 1), ফলাফল 0 হবে।
XNOR অপারেশন (এক্সক্লুসিভ নয়)
XOR এর একটি প্রতিরূপ আছে: XNOR। ইনপুট বিট একই হলে এই অপারেটর 1 প্রদান করে (উভয় 0 বা উভয় 1), এবং যদি তারা ভিন্ন হয় 0 প্রদান করে।
বাইনারি লজিক অপারেশন কোথায় ব্যবহৃত হয়?
বাইনারি লজিক অপারেশনগুলি অত্যন্ত সাধারণ নেটওয়ার্ক সিস্টেম, ডিজিটাল ইলেকট্রনিক্স এবং প্রোগ্রামিং. যদিও আমরা এটি সম্পর্কে সচেতন নাও হতে পারি, আমরা ইলেকট্রনিক ডিভাইসগুলির সাথে যে সমস্ত দৈনন্দিন ক্রিয়াকলাপ করি তার পিছনে এই অপারেশনগুলি রয়েছে৷
এই অপারেশনগুলি ব্যবহার করা হয় এমন স্পষ্ট উদাহরণগুলির মধ্যে একটি হল IPv4 ঠিকানা. একটি নেটওয়ার্কের সাথে সংযুক্ত প্রতিটি ডিভাইস একটি IP ঠিকানা এবং সাবনেট মাস্ক বরাদ্দ করা হয়. AND অপারেশন ব্যবহার করে, ডিভাইসগুলি তাদের ঠিকানা অন্য ডিভাইসগুলির সাথে তুলনা করে তা জানতে তারা একই নেটওয়ার্কের অন্তর্গত কিনা বা ডেটা প্রেরণ করা হচ্ছে কিনা তা অন্য নেটওয়ার্কে পাঠানো উচিত।
IPv4 ব্যবহারের উদাহরণ:
যখন একটি ডিভাইস তার ঠিকানাকে সাবনেট মাস্কের সাথে তুলনা করে:
আইপি ঠিকানা: 11000000.10101000.00000001.00000001. সাবনেট: 11111111.11111111.11111111.00000000
বিট করে AND অপারেশন প্রয়োগ করে, আমরা নিম্নলিখিতগুলি পাই:
11000000.10101000.00000001.00000000
ফলাফল হল নেটওয়ার্ক ঠিকানা যার সাথে ডিভাইসটি অন্তর্গত।
জর্জ বুলের গুরুত্ব
বাইনারি লজিক এবং আমরা যে ক্রিয়াকলাপগুলি বর্ণনা করেছি তা বিদ্যমান থাকবে না কারণ আমরা গণিতবিদদের কাজ ছাড়া সেগুলি জানি না জর্জ বুলে. এই 19 শতকের প্রতিভা তৈরি করেছে যা আমরা বুলিয়ান বীজগণিত হিসাবে জানি, যা বুলিয়ান ক্রিয়াকলাপের জন্য গাণিতিক ভিত্তি স্থাপন করে এবং অবশেষে, বাইনারি যুক্তির জন্য যার উপর আজকের কম্পিউটার এবং ডিজিটাল সিস্টেমগুলি নির্মিত হয়েছে।
বুলে এমন সময়ে তার অবদান রেখেছিলেন যখন গণিত এবং যুক্তিবিদ্যা বিভিন্ন পথ অনুসরণ করেছিল। উভয় শৃঙ্খলাকে একত্রিত করার তার দৃষ্টিভঙ্গি আজ আমরা ডিজিটাল যুক্তি হিসাবে যা বুঝি তার ভিত্তি পরিবর্তন করেছে।
বিটওয়াইজ অপারেশন
উল্লিখিত ক্রিয়াকলাপগুলি ছাড়াও, বিট-স্তরের ক্রিয়াকলাপগুলির ডেটা প্রক্রিয়াকরণে খুব ব্যবহারিক অ্যাপ্লিকেশন রয়েছে। এই অপারেশন অনুমতি দেয় ম্যানিপুলেট এবং পৃথক বিট পরিবর্তন একটি বাইনারি সংখ্যার, যা ডেটা ফিল্টার করার জন্য, বিট মাস্কিং করার জন্য এবং আরও নির্ভরযোগ্য সিস্টেমে সংখ্যার হেরফের করার জন্য প্রয়োজনীয়।
বিট স্তরে AND অপারেশন
প্রথমে বিট লেভেলে AND অপারেটর দেখি। এর অপারেশনটি বেশ সহজ: আপনি দুটি সংখ্যার মধ্যে প্রতিটি সংশ্লিষ্ট জোড়া বিট নিন এবং সেই অবস্থানের বিটটি 0 হবে কিনা তা নির্ধারণ করতে AND অপারেশনের নিয়মগুলি প্রয়োগ করুন (যদি উভয় ইনপুট বিট 1 না হয়) বা 1 হবে (যদি উভয় ইনপুট বিট হল 1)।
বিটওয়াইজ এবং অপারেশনের উদাহরণ:
0101 এবং 0011 = 0001
AND দিয়ে বিট ফিল্টার করতে মাস্ক ব্যবহার করা
ডিজিটাল প্রোগ্রামিং-এ, AND অপারেটর সাধারণত ব্যবহার করা হয় বিট মাস্ক নির্দিষ্ট বিট নির্বাচন বা ফিল্টার করতে। উদাহরণস্বরূপ, আপনি যদি বিটের ক্রমানুসারে একটি নির্দিষ্ট বিট চালু বা বন্ধ আছে কিনা তা পরীক্ষা করতে চান, আপনি একটি মাস্ক দিয়ে একটি AND অপারেশন করতে পারেন যা শুধুমাত্র সেই বিটটি নির্বাচন করে।
বিটমাস্ক উদাহরণ:
0011 এবং 0010 = 0010
এই ক্ষেত্রে, আমরা দ্বিতীয় বিট চালু আছে কিনা তা পরীক্ষা করছি। যেহেতু ফলাফল অ-শূন্য, আমরা জানি যে বিট চালু আছে।
OR অপারেটরের মতো অন্যান্য ক্রিয়াকলাপগুলিরও বিট স্তরে কাজ করার ক্ষেত্রে বিশাল অ্যাপ্লিকেশন রয়েছে।
Bitwise XOR অপারেশন
XOR অপারেটর অনুমতি দিয়ে নিম্ন-স্তরের প্রোগ্রামিং এর সবচেয়ে দরকারী বৈশিষ্ট্যগুলির মধ্যে একটি খেলা একটি অস্থায়ী ভেরিয়েবল ব্যবহার না করে দুটি ভেরিয়েবলের মধ্যে মান অদলবদল করুন. XOR এক্সচেঞ্জ নামে পরিচিত এই কৌশলটি খুবই কার্যকর এবং XOR অপারেটরের সত্য সারণীর সুবিধা নেয়।
XOR বিনিময় উদাহরণ:
a = a XOR bb = a XOR ba = a XOR b
এই তিনটি অপারেশন চালানোর পর, এর মান a
y b
তৃতীয় ভেরিয়েবল ব্যবহার করার প্রয়োজন ছাড়াই তাদের বিনিময় করা হবে।
বিটওয়াইজ স্থানান্তর এবং ঘূর্ণন
অবশেষে, অপারেশন উত্পাটন y ঘূর্ণন তারা একটি সংখ্যার বিট ডান বা বামে সরানোর অনুমতি দেয়। এই ক্রিয়াকলাপগুলি অনেক ক্ষেত্রে কার্যকর, যেমন ক্রিপ্টোগ্রাফি এবং এমবেডেড সিস্টেমে ডেটা ম্যানিপুলেশন।
যৌক্তিক বাম স্থানান্তর একটি সংখ্যাকে 2 দ্বারা গুণ করার সমতুল্য, যখন লজিক্যাল ডান স্থানান্তরটি সংখ্যাটিকে 2 দ্বারা ভাগ করার সমতুল্য।
বহনের মাধ্যমে ঘূর্ণনের মাধ্যমে, একপাশে বেরিয়ে যাওয়া বিটগুলি অন্য দিকে ফিরে আসে, যা কিছু ক্রিপ্টোগ্রাফিক অ্যালগরিদম এবং নির্দিষ্ট হার্ডওয়্যারের জন্য দরকারী।
পরিশেষে, এই ক্রিয়াকলাপগুলিকে বোঝা সেই ক্ষেত্রে দক্ষতার সাথে কাজ করার মূল চাবিকাঠি যেখানে বিটগুলির সরাসরি ম্যানিপুলেশন প্রয়োজন, যেমন নিম্ন-স্তরের প্রোগ্রামিং, এমবেডেড সিস্টেমের বিকাশ, বা ডিজিটাল হার্ডওয়্যারের নকশা।