সংখ্যা পদ্ধতি, রূপান্তর ক্যালকুলেটর ও ২-এর পরিপূরক (Number Systems)
পর্ব ৪: চিহ্নযুক্ত সংখ্যা, ২-এর পরিপূরক (2’s Complement) ও যোগের মাধ্যমে বিয়োগ
কম্পিউটারের ভেতরে বিয়োগ করার জন্য আলাদা কোনো বিয়োগের সার্কিট (Subtractor) ব্যবহার করা হয় না! ২-এর পরিপূরক (2’s Complement) পদ্ধতি ব্যবহার করে যোগের সার্কিট (Adder) দিয়েই বিয়োগের কাজ সম্পন্ন করা হয়। ৮-বিট রেজিস্টারে সর্ববামের ৮ম বিটটিকে (MSB) বলা হয় চিহ্ন বিট (Sign Bit): এটি 0 হলে সংখ্যাটি ধনাত্মক (+) এবং 1 হলে সংখ্যাটি ঋণাত্মক (-)।
- ১-এর পরিপূরক (1’s Complement): ৮-বিট বাইনারির প্রতিটি 0 কে 1 এবং 1 কে 0 (উল্টে দেওয়া)।
- ২-এর পরিপূরক (2’s Complement) = ১-এর পরিপূরক + 1। এটিই ঋণাত্মক সংখ্যার প্রকৃত বাইনারি রূপ!
- যোগের মাধ্যমে বিয়োগ (X - Y): যে সংখ্যাটিকে বিয়োগ করতে হবে (যেমন -Y), কেবল সেটির ২-এর পরিপূরক বের করে অপর সংখ্যার সাথে যোগ করতে হয়।
- ৮ বিটের যোগফলে যদি ৯ম বিট (Extra Carry Bit) আসে, তবে সেই ক্যারি বিটটি বাদ (Discard) দিতে হয়!
+25 = 00011001₂। ডানপাশের ল্যাবে দেখো কীভাবে ১-এর পরিপূরকের সাথে ১ যোগ করে 11100111₂ পাওয়া যায়!
💡 ডানদিকের বিটগুলো লক্ষ্য করো: সর্বডানেই 1 আছে, তাই প্রথম 1 রেখে বামের ৭টি বিট উল্টে দিলেই 11100111 মিলে যাচ্ছে!
(+45) + (-18) করলে ৯ম বিটে একটি অতিরিক্ত ক্যারি (1) উৎপন্ন হয় যা বাদ যায় এবং চিহ্ন বিট 0 থাকায় ফলাফল +27 পাওয়া যায়।
18 - 45 = -27। এখানে কোনো ক্যারি বিট আসে না এবং চিহ্ন বিট 1 হয় (অর্থাৎ ফলাফল ঋণাত্মক)। ফলাফলকে আবার ২-এর পরিপূরক করলে প্রকৃত মান 27 পাওয়া যায়!
প্রদত্ত ৮-বিট বাইনারি সংখ্যার ডানদিক (LSB) থেকে বামদিকে তাকাও। প্রথম যে "1" বিটটি পাবে, সে পর্যন্ত যা আছে হুবহু রেখে দাও, এবং তার বামের বাকি সবগুলো বিট উল্টে দাও (0→1, 1→0)!
- HSC বোর্ড পরীক্ষায় অধ্যায় ৩ থেকে যে সৃজনশীল প্রশ্নটি আসবেই, তার "গ" বা "ঘ" নম্বরে ২-এর পরিপূরক পদ্ধতিতে যোগ বা বিয়োগ থাকে। উত্তরের শেষে অবশ্যই লিখবে: "চিহ্ন বিট 0 হওয়ায় ফলাফল ধনাত্মক (এবং ক্যারি বিট ১ ওভারফ্লো হিসেবে বাদ দেওয়া হলো)।"
- ৮-বিট ২-এর পরিপূরক পদ্ধতিতে সর্বনিম্ন -128 থেকে সর্বোচ্চ +127 পর্যন্ত সংখ্যা প্রকাশ করা যায়।
৮-বিট ২-এর পরিপূরক (2's Complement) ও যোগের মাধ্যমে বিয়োগ ল্যাব
HSC বোর্ড পরীক্ষার সৃজনশীল (CQ) প্রশ্নের ধাপ এবং ১ সেকেন্ডে পরিপূরক বের করার ম্যাজিক ট্রিক
ডানদিক (LSB) থেকে বামদিকে যাওয়ার সময় প্রথম যে 1 পাবে সেই 1 পর্যন্ত বিটগুলো হুবহু অপরিবর্তিত রাখো (সবুজ অংশ), আর তার বামের সবগুলো বিট উল্টে দাও (হলুদ অংশ)!