২-এর পরিপূরক ও ডিজিটাল বর্তনীতে এর গুরুত্ব

এইচএসসি আইসিটি অধ্যায় ৩: ২-এর পরিপূরক বা 2s Complement নির্ণয়ের পদ্ধতি, এর গুরুত্ব এবং যোগের মাধ্যমে বিয়োগ করার বিস্তারিত গাণিতিক নিয়ম। পরীক্ষার জন্য অত্যন্ত গু

শেখা শুরু করুন

২-এর পরিপূরক ও ডিজিটাল বর্তনীতে এর গুরুত্ব

  1. ২-এর পরিপূরক ও ডিজিটাল বর্তনীতে এর গুরুত্ব
  2. কম্পিউটার কি বিয়োগ করতে পারে?
  3. ২-এর পরিপূরক নির্ণয়ের ধাপ
  4. উদাহরণ: +৫ এর ২-এর পরিপূরক (অর্থাৎ -৫)
  5. ম্যাজিক ট্রিক / শর্টকাট পদ্ধতি
  6. কেন ২-এর পরিপূরক পদ্ধতি শ্রেষ্ঠ?
  7. ২-এর পরিপূরক পদ্ধতিতে যোগ ও বিয়োগ
  8. উদাহরণ ১: +২৫ থেকে +১২ বিয়োগ
  9. উদাহরণ ২: +১২ থেকে +২৫ বিয়োগ
  10. উদাহরণ ৩: -১২ এবং -২৫ এর যোগফল
  11. ওভারফ্লো (Overflow) কী?
  12. সারাংশ ও বাড়ির কাজ

২-এর পরিপূরক ও ডিজিটাল বর্তনীতে এর গুরুত্ব

এই লেকচার শেষে আমরা-

১। ২-এর পরিপূরক (2's Complement) কী এবং কেন এটি গুরুত্বপূর্ণ তা ব্যাখ্যা করতে পারব।
২। ২-এর পরিপূরক নির্ণয়ের পদ্ধতি ও শর্টকাট টেকনিক প্রয়োগ করতে পারব।
৩। ২-এর পরিপূরক ব্যবহার করে বাইনারি যোগ ও বিয়োগ করতে পারব।
৪। ডিজিটাল বর্তনীতে চিহৃযুক্ত সংখ্যা ও ওভারফ্লো (Overflow) এর ধারণা ব্যাখ্যা করতে পারব।

স্বাগতম প্রিয় শিক্ষার্থীরা। আজকের ক্লাসে আমরা সংখ্যা পদ্ধতির অত্যন্ত গুরুত্বপূর্ণ একটি বিষয় নিয়ে আলোচনা করব - সেটি হলো ২-এর পরিপূরক বা 2's Complement। কম্পিউটার সায়েন্সে এই কনসেপ্টটি অনেকটা জাদুর মতো কাজ করে। কেন জাদুর মতো? কারণ এর মাধ্যমেই কম্পিউটার যোগের কাজ দিয়ে বিয়োগের কাজ সেরে ফেলে। শুনতে অবাক লাগছে? চলো আজকের লেকচারে আমরা এই রহস্যটাই ভেদ করব। প্রথমে দেখে নেই আজকের ক্লাসে আমরা কী কী শিখব।

কম্পিউটার কি বিয়োগ করতে পারে?

বিয়োগের ধাঁধাঁ:

  • আমরা জানি কম্পিউটার যোগ, বিয়োগ, গুণ, ভাগ সব করতে পারে।
  • কিন্তু বাস্তবে কম্পিউটারের প্রসেসরে (CPU) 'বিয়োগ' করার জন্য আলাদা কোনো সার্কিট থাকে না।
  • কম্পিউটারের প্রধান গাণিতিক ইউনিট হলো Adder যা শুধু যোগ করতে পারে।

তাহলে বিয়োগ হয় কীভাবে?
- কম্পিউটার বিয়োগকে যোগের মাধ্যমে সমাধান করে:
$$A - B = A + (-B)$$
- এখানে এই (-B) বা ঋণাত্মক সংখ্যা তৈরির জন্যই ২-এর পরিপূরক পদ্ধতি ব্যবহার করা হয়।

একটা মজার বিষয় ভাবো তো। মনে করো তোমাকে একটা ক্যালকুলেটর দেওয়া হলো যেখানে শুধু 'যোগ' বা প্লাস বাটন আছে, কিন্তু কোনো 'বিয়োগ' বা মাইনাস বাটন নেই। এখন তোমাকে বলা হলো ৫ থেকে ৩ বিয়োগ করতে। তুমি কি পারবে? সাধারণ বুদ্ধিতে মনে হবে এটা অসম্ভব। কিন্তু কম্পিউটার ঠিক এই কাজটাই করে! কম্পিউটারের হার্ডওয়্যারে বিয়োগের জন্য আলাদা কোনো যন্ত্র নেই, সে শুধু যোগ করতে জানে। তাহলে সে বিয়োগফল বের করে কীভাবে? সে আসলে চালাকি করে। সে ৩ কে -৩ বানিয়ে ৫ এর সাথে যোগ করে দেয়। আর এই নেগেটিভ সংখ্যা বানানোর টেকনিকটাই হলো ২-এর পরিপূরক।

২-এর পরিপূরক নির্ণয়ের ধাপ

কোনো ধনাত্মক সংখ্যার ২-এর পরিপূরক (ঋণাত্মক মান) বের করার নিয়ম:

  1. প্রকৃত মান গঠন: সংখ্যাটিকে ৮-বিট বা ১৬-বিট রেজিস্টারে বাইনারিতে সাজাতে হবে। (বামে প্রয়োজনীয় সংখ্যক ০ বসিয়ে)
  2. ১-এর পরিপূরক (1's Complement): প্রতিটি বিটকে উল্টে দিতে হবে। অর্থাৎ ০ থাকলে ১ এবং ১ থাকলে ০ হবে।
  3. ২-এর পরিপূরক (2's Complement): ১-এর পরিপূরক মানের সাথে ১ যোগ করতে হবে।

সূত্র:
$$2's\ Complement = 1's\ Complement + 1$$

এখন চলো দেখি হাতে-কলমে এই ২-এর পরিপূরক কীভাবে বের করতে হয়। এর জন্য মাত্র তিনটি ধাপ মনে রাখতে হবে। প্রথমত, সংখ্যাটির বাইনারি বের করে তাকে ৮-বিট বা ১৬-বিট রেজিস্টারে সাজাতে হবে। মানে, যদি তোমার বাইনারি হয় ১০১, তবে তার বামে পাঁচটা শূন্য বসিয়ে ৮ বিট পূর্ণ করতে হবে। এটা খুব জরুরি! দ্বিতীয়ত, আমরা করব ১-এর পরিপূরক। মানে সোজা কথায় বিটগুলো উল্টে দেবো। যেখানে শূন্য আছে সেখানে এক, আর যেখানে এক আছে সেখানে শূন্য বসাবো। আর শেষ ধাপ, এই উল্টানো মানের সাথে এক যোগ করে দিলেই পেয়ে যাব ২-এর পরিপূরক। অর্থাৎ, ২-এর পরিপূরক মানে হলো ১-এর পরিপূরক যোগ এক।

উদাহরণ: +৫ এর ২-এর পরিপূরক (অর্থাৎ -৫)

ধাপে ধাপে নির্ণয়:

  1. সংখ্যা: +৫
  2. বাইনারি মান (৮-বিট): ০০০০ ০১০১
  3. ১-এর পরিপূরক: ১১১১ ১০১০ (বিট উল্টানো)
  4. ১ যোগ: + ১

ফলাফল (-৫): ১১১১ ১০১১

লক্ষ্য করো:
- ১১১১ ১০১১ হলো -৫ এর বাইনারি রূপ।
- সর্ববামের বিট (MSB) ১, মানে সংখ্যাটি ঋণাত্মক।

চলো একটা উদাহরণ দিয়ে বিষয়টাকে একদম পরিষ্কার করা যাক। আমরা +৫ কে -৫ এ রূপান্তর করব। স্ক্রিনে দেখো, প্রথমে আমরা ৫ এর বাইনারি লিখেছি ১০১, আর বামে পাঁচটা শূন্য দিয়ে ৮ বিট পূর্ণ করেছি - মানে ০০০০০১০১। এবার এটাকে ১-এর পরিপূরক করি - সব শূন্য হয়ে গেল এক, আর এক হয়ে গেল শূন্য। পেলাম ১১১১১০১০। সবশেষে এর সাথে ১ যোগ করলাম। ব্যস! পেয়ে গেলাম ১১১১১০১১। এই যে ভ্যালুটা পেলাম, এটাই কম্পিউটারের কাছে -৫। খেয়াল করে দেখো, এর একদম বামের বিট কিন্তু ১, যা বুঝিয়ে দিচ্ছে এটা একটা নেগেটিভ সংখ্যা।

ম্যাজিক ট্রিক / শর্টকাট পদ্ধতি

পরীক্ষায় দ্রুত বা MCQ এর জন্য এই টেকনিকটি ব্যবহার করতে পারো:

নিয়ম: ডানদিক থেকে বামদিকে স্ক্যান করো।
1. প্রথম '1' পাওয়া পর্যন্ত বিটগুলো যেমন আছে তেমন থাকবে।
2. প্রথম '1' এর পর থেকে বামদিকের বাকি সব বিট উল্টে যাবে

উদাহরণ:
- মূল সংখ্যা: ০০০০ ১০০০
- ২-এর পরিপূরক: ১১১১ ০১০০

(বোল্ড অংশ ফিক্সড, বাকিটা উল্টে গেছে)

এবার তোমাদের একটা দারুণ ম্যাজিক ট্রিক বা শর্টকাট শিখিয়ে দিই। এটা জানলে পরীক্ষার হলে অনেক সময় বাঁচবে। নিয়মটা হলো - ডানদিক থেকে বামদিকে সংখ্যাটা দেখবে। যতক্ষণ পর্যন্ত প্রথম '১' না পাচ্ছ, ততক্ষণ যা আছে তাই রাখবে। যেই প্রথম '১' পেয়ে গেলে, সেটাকেও রাখবে। কিন্তু তার পর থেকে বামে যা কিছু আছে সব উল্টে দেবে। চিত্রে দেখো - প্রথম দুটো শূন্য আর প্রথম এক ঠিক আছে। কিন্তু যেই প্রথম একটা পার হলাম, বামের সব জিরো ওয়ান হয়ে গেল আর ওয়ান জিরো হয়ে গেল। মজার না? আগের স্লাইডের -৫ এর সাথে এই পদ্ধতি মিলিয়ে দেখো তো মিলে কি না!

কেন ২-এর পরিপূরক পদ্ধতি শ্রেষ্ঠ?

চিহ্নযুক্ত সংখ্যা উপস্থাপনে ৩টি পদ্ধতি আছে, কিন্তু ২-এর পরিপূরক কেন সেরা?

১. শূন্যের একক উপস্থাপন (Unique Zero):
- ১-এর পরিপূরক: ০ এর দুটি মান (+০ এবং -০) থাকে যা বিভ্রান্তিকর।
- ২-এর পরিপূরক: ০ এর একটাই মান (০০০০০০০০)।

২. সার্কিটের সরলতা:
- বিয়োগের জন্য আলাদা সাবট্রাক্টর সার্কিট লাগে না।
- একই Adder সার্কিট দিয়েই যোগ ও বিয়োগ উভয়ই করা যায়, যা খরচ ও জটিলতা কমায়।

এখন প্রশ্ন আসতে পারে, নেগেটিভ সংখ্যা তো ১-এর পরিপূরক দিয়েও করা যেত, বা শুধু সাইন বিট দিয়েও করা যেত। তাহলে ২-এর পরিপূরক কেন সেরা? প্রধান কারণ হলো 'শূন্য' এর সমস্যা। ১-এর পরিপূরক পদ্ধতিতে +০ আর -০ নামে দুটো আলাদা ভ্যালু চলে আসে, যা বাস্তবে অযৌক্তিক। কিন্তু ২-এর পরিপূরকে শূন্য একটাই। তাছাড়া, ২-এর পরিপূরক ব্যবহার করলে কম্পিউটারকে বিয়োগের জন্য আলাদা কোনো সার্কিট বানাতে হয় না। যোগের সার্কিট দিয়েই বিয়োগ করা যায়। এতে কম্পিউটারের দাম ও জটিলতা দুটোই কমে যায়।

২-এর পরিপূরক পদ্ধতিতে যোগ ও বিয়োগ

এখন আমরা দেখব কীভাবে কম্পিউটার যোগের মাধ্যমে বিয়োগ করে। খাতা-কলম নিয়ে প্রস্তুত হও!

থিওরি তো অনেক হলো, এবার চলো আমরা আসল কাজে নামি। আমরা এখন দেখব কম্পিউটার কীভাবে বাস্তবে যোগ ও বিয়োগ করে। তোমরা খাতা-কলম নিয়ে রেডি হয়ে যাও, আমার সাথে সাথে অঙ্কগুলো করবে।

উদাহরণ ১: +২৫ থেকে +১২ বিয়োগ

সমস্যা: ২৫ - ১২ = ?
লজিক: (+২৫) + (-১২)

ধাপসমূহ:
১. +২৫ এর ৮-বিট মান: ০০০১ ১১০০
২. +১২ এর মান (০০০০ ১১০০) -> ২-এর পরিপূরক (-১২): ১১১১ ০১০১
৩. যোগ:
০০০১ ১১০০ (+২৫)
+ ১১১১ ০১০১ (-১২)


১ ০০০০ ১১০১

  • কেরি বিট (১) বিবেচনা করা হয় না (Discarded)।
  • ফলাফল: ০০০০ ১১০১ যা ডেসিমলে +১৩

প্রথম অঙ্ক: ২৫ থেকে ১২ বিয়োগ করতে হবে। কম্পিউটার এটাকে ভাবে ২৫ যোগ (-১২) হিসেবে। তাহলে আমাদের প্রথম কাজ ২৫ এর সাধারণ বাইনারি লেখা। আর ১২ কে ২-এর পরিপূরক করে -১২ বানানো। এখানে ১২ এর ২-এর পরিপূরক হলো ১১১১০১০১। এবার সাধারণ বাইনারি যোগ করি। যোগফল আসছে ১০০০০১১০১। খেয়াল করো, এখানে ৯টা বিট হয়ে গেছে। কিন্তু আমাদের রেজিস্টার তো ৮ বিটের! তাই একদম বামের যে ১ টা অতিরিক্ত এসেছে, একে বলা হয় কেরি বিট। ২-এর পরিপূরক যোগে এই কেরি বিট আমরা বাদ দিয়ে দেই। তাহলে বাকি থাকল কী? ০০০০১১০১। যার মান ১৩। দেখো, আমাদের উত্তরের সাথে মিলে গেছে!

উদাহরণ ২: +১২ থেকে +২৫ বিয়োগ

সমস্যা: ১২ - ২৫ = ?
লজিক: (+১২) + (-২৫)

ধাপসমূহ:
১. +১২ এর মান: ০০০০ ১১০০
২. +২৫ এর ২-এর পরিপূরক (-২৫): ১১১০ ০১১১
৩. যোগ:
০০০০ ১১০০ (+১২)
+ ১১১০ ০১১১ (-২৫)


১১১১ ০০১১

  • কোনো কেরি বিট নেই।
  • সাইন বিট '১' মানে ফলাফল ঋণাত্মক।
  • প্রকৃত মান জানতে ফলাফলকে পুনরায় ২-এর পরিপূরক করতে হবে।
  • ১১১১ ০০১১ -> ২-এর পরিপূরক -> ০০০০ ১১০১ (১৩)। অর্থাৎ উত্তর -১৩

এবার উল্টো কেসটা দেখি। ছোট থেকে বড় বিয়োগ। ১২ থেকে ২৫ বিয়োগ। নিয়ম একই। ১২ এর বাইনারি আর ২৫ এর ২-এর পরিপূরক (মানে -২৫) যোগ করব। যোগফল আসলো ১১১১০০১১। এখানে কোনো কেরি বিট নেই। কিন্তু ভালো করে তাকাও, ফলাফলের একদম বামের বিট বা সাইন বিট হলো ১। এর মানে কী? এর মানে উত্তরটা নেগেটিভ। কম্পিউটার বুঝল এটা নেগেটিভ সংখ্যা, কিন্তু আমরা তো বুঝছি না এটার মান কত। এটার মান বের করতে হলে এই ফলাফলকে আবার ২-এর পরিপূরক করতে হবে। ১১১১০০১১ কে উল্টে ১ যোগ করলে আমরা পাই ১৩। যেহেতু সাইন বিট ১ ছিল, তাই উত্তর হলো -১৩।

উদাহরণ ৩: -১২ এবং -২৫ এর যোগফল

সমস্যা: (-১২) + (-২৫) = ?

ধাপসমূহ:
১. -১২ (২-এর পরিপূরক আকারে): ১১১১ ০১০১
২. -২৫ (২-এর পরিপূরক আকারে): ১১১০ ০১১১
৩. যোগ:
১১১১ ০১০১
+ ১১১০ ০১১১


১ ১১০১ ১১০০

  • কেরি বিট বাদ।
  • ফলাফল: ১১০১ ১১০০ (সাইন বিট ১, তাই নেগেটিভ)
  • যাচাই: ১১০১ ১১০০ কে ২-এর পরিপূরক করলে পাই ০০১০ ০১০১ বা ৩৭।
  • সুতরাং, নির্ণেয় ফলাফল -৩৭

আর যদি দুটো সংখ্যাই নেগেটিভ হয়? যেমন -১২ আর -২৫? খুব সহজ। দুটোকেই প্রথমে ২-এর পরিপূরক করে নেগেটিভ বানিয়ে নেবে। তারপর সাধারণ যোগ। যোগফলে কেরি বিট আসলে বাদ দেবো। এখানে যোগফল এসেছে ১১০১ ১১০০। সাইন বিট ১, মানে নেগেটিভ। এটার মান বুঝতে আবার ২-এর পরিপূরক করে দেখো, পাবে ৩৭। তার মানে আসল উত্তর -৩৭। লজিকটা পরিষ্কার তো? দুটো ঋণাত্মক সংখ্যা যোগ করলে তো ঋণাত্মকই হবে, তাই না?

ওভারফ্লো (Overflow) কী?

ধারণা: ৮-বিট রেজিস্টারে আমরা -১২৮ থেকে +১২৭ পর্যন্ত সংখ্যা রাখতে পারি।

সমস্যা:
- যদি দুটি সংখ্যার যোগফল এই রেঞ্জের বাইরে চলে যায়, তবে তাকে ওভারফ্লো বলে।
- ওভারফ্লো হলে সাইন বিট পরিবর্তন হয়ে ভুল ফলাফল দেয়।

উদাহারণ:
- +১০০ এবং +৫০ যোগ করলে +১৫০ হয়।
- কিন্তু ৮-বিটে ১৫০০ রাখা সম্ভব নয় (সর্বোচ্চ ১২৭)।
- ফলে কম্পিউটার একে নেগেটিভ সংখ্যা হিসেবে দেখাতে পারে যা ভুল।

শেষ করার আগে একটা গুরুত্বপূর্ণ কনসেপ্ট বলি - ওভারফ্লো। মনে করো তোমার একটা বালতি আছে যেখানে ১০ লিটার পানি ধরে। তুমি যদি সেখানে ১২ লিটার পানি ঢালতে যাও, কী হবে? পানি উপচে পড়ে যাবে, তাই না? রেজিস্টারের ক্ষেত্রেও তাই। ৮ বিট রেজিস্টারে সর্বোচ্চ ১২৭ পর্যন্ত পজিটিভ সংখ্যা রাখা যায়। এখন তুমি যদি ১০০ আর ৫০ যোগ করো, হয় ১৫০। এটা ১২৭ এর চেয়ে বড়। তখন এই সংখ্যা আর ৮ বিটে আটবে না, উপচে পড়ে সাইন বিটকে নষ্ট করে ফেলবে। কম্পিউটার তখন ভুল করে পজিটিভ রেজাল্টকে নেগেটিভ দেখিয়ে ফেলবে। একেই বলা হয় ওভারফ্লো।

সারাংশ ও বাড়ির কাজ

সারাংশ:
- পজিটিভ সংখ্যা = সাধারণ বাইনারি।
- নেগেটিভ সংখ্যা = ২-এর পরিপূরক ফর্ম।
- বিয়োগ মানেই নেগেটিভ সংখ্যার সাথে যোগ।

বাড়ির কাজ:
২-এর পরিপূরক পদ্ধতি ব্যবহার করে মান নির্ণয় কর:
১. (৫০ - ২০)
২. (২০ - ৫০)

পরের ক্লাসে আমরা কোড (BCD, ASCII) নিয়ে আলোচনা করব।

আজকের ক্লাস এখানেই শেষ করছি। আমরা শিখলাম কীভাবে কম্পিউটার ২-এর পরিপূরক ব্যবহার করে সব ধরনের গাণিতিক কাজ করে। মনে রাখবে, বিয়োগ মানেই হলো নেগেটিভ ভ্যালু যোগ করা। তোমাদের জন্য ছোট দুটো বাড়ির কাজ থাকল - ৫০ থেকে ২০ বিয়োগ এবং ২০ থেকে ৫০ বিয়োগ। নিয়ম মেনে প্র্যাকটিস করবে। পরের ক্লাসে আমরা বিভিন্ন কোড যেমন BCD, ASCII নিয়ে কথা বলব। সবাই ভালো থেকো, ধন্যবাদ।

২-এর পরিপূরক ও ডিজিটাল বর্তনীতে এর গুরুত্ব

পড়তে প্রায় 25 মিনিট

কম্পিউটার বা ডিজিটাল ডিভাইস শুধুমাত্র ০ এবং ১ বুঝতে পারে, তাই সাধারণ গণিতের মতো '-' (মাইনাস) চিহ্ন ব্যবহার করার কোনো সুযোগ হার্ডওয়্যারে নেই। তাহলে কম্পিউটার কীভাবে বোঝে কোনো সংখ্যা ধনাত্মক নাকি ঋণাত্মক? এই প্রশ্নের উত্তর দিয়েই আমাদের আজকের আলোচনা শুরু।

আধুনিক কম্পিউটারে বিয়োগের কাজ সরাসরি করা হয় না। বরং বিয়োগকে যোগের মাধ্যমে সম্পন্ন করা হয়। যেমন: $A - B$ কে কম্পিউটার $A + (-B)$ হিসেবে গণনা করে। এই ঋণাত্মক সংখ্যা প্রকাশের আধুনিক ও সবচেয়ে গ্রহণযোগ্য পদ্ধতি হলো ২-এর পরিপূরক (2's Complement)। আজকের পাঠে আমরা এর পেছনের বিজ্ঞান, 'চিহ্নযুক্ত সংখ্যা' বা Signed Number-এর ধারণা এবং ২-এর পরিপূরক পদ্ধতির খুঁটিনাটি জানব যা পরীক্ষার সৃজনশীল প্রশ্নের উত্তরের জন্য অপরিহার্য।

চিহ্নযুক্ত সংখ্যা (Signed Number) ও ২-এর পরিপূরকের ধারণা

স্বাভাবিক বাইনারি সংখ্যায় (যেমন: ১০১১০) কোনো চিহ্ন থাকে না, এগুলো সব ধনাত্মক। কিন্তু গাণিতিক কাজের জন্য ধনাত্মক ও ঋণাত্মক উভয় প্রকার সংখ্যার প্রয়োজন হয়। বাইনারি পদ্ধতিতে সংখ্যার আগে প্লাস (+) বা মাইনাস (-) চিহ্ন ব্যবহার করা যায় না। তাই সংখ্যার ধনাত্মক বা ঋণাত্মক অবস্থা বোঝানোর জন্য সংখ্যার সর্ববামে একটি অতিরিক্ত বিট ব্যবহার করা হয়।

সংজ্ঞা (Signed Number): বাইনারি পদ্ধতিতে সংখ্যার মান বোঝানোর জন্য ব্যবহৃত বিটগুলোর সর্ববামে যে অতিরিক্ত একটি বিট (০ বা ১) ব্যবহার করা হয়, তাকে চিহ্ন বিট বা Sign Bit বলে। চিহ্ন বিটসহ সংখ্যাকে চিহ্নযুক্ত সংখ্যা বা Signed Number বলা হয়।

একটি ৮-বিট রেজিস্টারে:
- সর্ববামের বিট (৮ম বিট): সাইন বিট (Sign Bit)।
- হলে সংখ্যাটি ধনাত্মক (+)
- হলে সংখ্যাটি ঋণাত্মক (-)
- বাকি ৭টি বিট: সংখ্যার মান (Magnitude) বা ডেটা বিট।

চিহ্নযুক্ত সংখ্যা প্রকাশের তিনটি পদ্ধতি রয়েছে:
১. প্রকৃত মান গঠন (Sign-Magnitude Form): সাইন বিট বাদে বাকি বিটগুলোতে সংখ্যার সরাসরি বাইনারি মান বসে।
২. ১-এর পরিপূরক (1's Complement): ঋণাত্মক সংখ্যার জন্য সব বিট উল্টে দেওয়া হয় (০ কে ১, ১ কে ০)।
৩. ২-এর পরিপূরক (2's Complement): ১-এর পরিপূরকের সাথে ১ যোগ করা হয়। এটিই বর্তমানে সব কম্পিউটারে ব্যবহৃত হয়।

গুরুত্বপূর্ণ (Important):
কম্পিউটারে ঋণাত্মক সংখ্যা সংরক্ষণ করার জন্যই মূলত ২-এর পরিপূরক পদ্ধতি ব্যবহার করা হয়। ধনাত্মক সংখ্যার ক্ষেত্রে ২-এর পরিপূরক করার প্রয়োজন নেই; তাদের বাইনারি মানই যথেষ্ট।

২-এর পরিপূরক নির্ণয়ের পদ্ধতি ও রেঞ্জ

২-এর পরিপূরক মান বের করা খুব সহজ। নিচের ধাপগুলো অনুসরণ করো:

ধাপ ১: সংখ্যাটির প্রকৃত বাইনারি মান বের করে নির্দিষ্ট বিটের (সাধারণত ৮, ১৬ বা ৩২) রেজিস্টার পূর্ণ করতে হবে। বামদিকের ফাঁকা ঘরগুলো ০ দিয়ে পূরণ করতে হবে। ধাপ ২: সংখ্যাটিকে ১-এর পরিপূরক করতে হবে (অর্থাৎ ০ কে ১ এবং ১ কে ০ দ্বারা পরিবর্তন)। ধাপ ৩: প্রাপ্ত মানের সাথে ১ যোগ করতে হবে। ফলাফল: যোগফলটিই ঐ সংখ্যার ঋণাত্মক মান বা ২-এর পরিপূরক।
উদাহরণ: -৫ এর ২-এর পরিপূরক নির্ণয় (৮-বিট রেজিস্টারে)
  1. +৫ এর বাইনারি: 00000101
  2. ১-এর পরিপূরক: 11111010 (বিটগুলো উল্টে দেওয়া হলো)
  3. ১ যোগ: 11111010 + 1 = 11111011
    সুতরাং, -৫ এর ২-এর পরিপূরক মান হলো 11111011

MCQ শর্টকাট (Shortcut): ডানদিক থেকে প্রথম '১' পাওয়া পর্যন্ত বিটগুলো যেমন আছে তেমনই রাখবে। এরপর বামদিকের বাকি সব বিট উল্টে দেবে।
উদাহরণ: 00000100 (+4)
ডানদিক থেকে প্রথম ১ পর্যন্ত: ...100 (ঠিক থাকবে)
বাকি বামের অংশ উল্টে যাবে: 11111...
রেজাল্ট: 11111100 (-4)

সংখ্যার রেঞ্জ বা সীমা (Number Range)

n-বিট রেজিস্টারে ২-এর পরিপূরক পদ্ধতিতে কত থেকে কত পর্যন্ত সংখ্যা লেখা যায়, তা জানা জরুরি।

$$Range = -(2^{n-1}) \text{ থেকে } +(2^{n-1} - 1)$$
যেখানে $n$ হলো বিট সংখ্যা।

  • ৮-বিট রেজিস্টার: $-2^{8-1}$ থেকে $+2^{8-1}-1$ = -১২৮ থেকে +১২৭
  • ১৬-বিট রেজিস্টার: $-2^{15}$ থেকে $+2^{15}-1$ = -৩২৭৬৮ থেকে +৩২৭৬৭

২-এর পরিপূরকের গুরুত্ব ও ১-এর পরিপূরকের সাথে তুলনা

কেন আমরা ১-এর পরিপূরক বা Sign-Magnitude ব্যবহার না করে ২-এর পরিপূরক ব্যবহার করি?

  1. অদ্বিতীয় শূন্য (Unique Zero): ১-এর পরিপূরক পদ্ধতিতে +0 (00000000) এবং -0 (11111111) এর জন্য আলাদা দুটি মান থাকে, যা গাণিতিকভাবে ভুল। কিন্তু ২-এর পরিপূরক পদ্ধতিতে শূন্যের মান একটাই (00000000)।
  2. সরল বর্তনী (Circuit Simplicity): ২-এর পরিপূরক পদ্ধতিতে যোগ এবং বিয়োগের জন্য একই বর্তনী (Adder Circuit) ব্যবহার করা যায়। বিয়োগের জন্য আলাদা কোনো সাবট্রাক্টর সার্কিটের প্রয়োজন হয় না, যা কম্পিউটারের খরচ ও জটিলতা কমায়।
  3. গতি: গাণিতিক অপারেশন দ্রুত সম্পন্ন হয়।
বৈশিষ্ট্য ১-এর পরিপূরক ২-এর পরিপূরক
শূন্যের মান দুটি (+0, -0) একটি (শুধু 0)
জটিলতা কিছুটা জটিল সহজ ও আধুনিক
ব্যবহার বর্তমানে কম ব্যবহৃত হয় সব আধুনিক কম্পিউটারে ব্যবহৃত হয়

২-এর পরিপূরক পদ্ধতিতে যোগ ও বিয়োগ (Worked Examples)

পরীক্ষায় প্রায়ই "২-এর পরিপূরক পদ্ধতিতে যোগ/বিয়োগ করো" এমন প্রশ্ন আসে। মনে রাখবে, বিয়োগের সময় $A - B$ কে $A + (-B)$ আকারে সাজিয়ে নিতে হবে। অর্থাৎ, যার আগে বিয়োগ চিহ্ন আছে, শুধু তাকে ২-এর পরিপূরক করে যোগ করতে হবে।

কেস ১: একটি ধনাত্মক ও একটি ঋণাত্মক সংখ্যা (বড়টি ধনাত্মক)

প্রশ্ন: ২-এর পরিপূরক পদ্ধতিতে $+২২$ এবং $-১৩$ যোগ করো।

সমাধান:
১. $+২২$ এর ৮-বিট বাইনারি: 00010110
২. $-১৩$ এর জন্য প্রথমে $+১৩$ বের করি: 00001101
৩. $-১৩$ (২-এর পরিপূরক): 11110010 + 1 = 11110011

এখন যোগ করি:

  +22  ->  00010110
  -13  ->  11110011
-------------------
   +9  -> 100001001
          ^
      (ক্যারি বিট)

ব্যাখ্যা: এখানে যোগফলের ৯ম বিটটি হলো ক্যারি বিট (Carry Bit)। ৮-বিট রেজিস্টারে এই অতিরিক্ত বিট রাখার জায়গা নেই, তাই এটি বাদ দেওয়া হয়। ফলাফল: 00001001 যা ডেসিমেল +9 এর সমান।

কেস ২: দুটি ঋণাত্মক সংখ্যা

প্রশ্ন: $-৫$ এবং $-৬$ যোগ করো।

সমাধান:
১. $-৫$ এর ২-এর পরিপূরক: 11111011
২. $-৬$ এর ২-এর পরিপূরক: 11111010

যোগ করি:

  -5   ->  11111011
  -6   ->  11111010
-------------------
  -11  -> 111110101
          ^
      (ক্যারি বিট)

ব্যাখ্যা: এখানেও ক্যারি বিট 1 বাদ যাবে। অবশিষ্ট ফলাফল 11110101। এর সাইন বিট 1, অর্থাৎ এটি ঋণাত্মক সংখ্যা। এর মান কত? এটি আবার ২-এর পরিপূরক করলে প্রকৃত মান পাওয়া যাবে: 00001010 + 1 = 00001011 (১১)। অর্থাৎ ফলাফল -১১

ওভারফ্লো (Overflow) কী এবং কেন হয়?

অনেক সময় দুটি সংখ্যা যোগ করলে ফলাফল রেজিস্টারের ধারণক্ষমতার বাইরে চলে যায়। তখন সাইন বিট পরিবর্তিত হয়ে ভুল ফলাফল প্রদর্শন করে। একে ওভারফ্লো বলে।

Arithmetic Overflow Diagram Showing Carry into MSB vs Carry Out

সংজ্ঞা (Overflow): কম্পিউটার রেজিস্টারে নির্দিষ্ট সীমার চেয়ে বড় কোনো গাণিতিক ফলাফল আসলে তা ধারণ করা সম্ভব হয় না এবং সাইন বিট পরিবর্তিত হয়ে ভুল ফলাফল দেয়। এই অবস্থাকে ওভারফ্লো (Overflow) বলে।

কখন ওভারফ্লো হয়?
- দুটি ধনাত্মক সংখ্যা যোগ করলে যদি ফলাফল ঋণাত্মক আসে (সাইন বিট ১ হয়ে যায়)।
- দুটি ঋণাত্মক সংখ্যা যোগ করলে যদি ফলাফল ধনাত্মক আসে (সাইন বিট ০ হয়ে যায়)।
- দ্রষ্টব্য: একটি ধনাত্মক ও একটি ঋণাত্মক সংখ্যা যোগ করলে কখনই ওভারফ্লো হয় না।

ক্যারি বিট vs ওভারফ্লো:
- ক্যারি বিট: স্বাভাবিক প্রক্রিয়ায় উৎপন্ন অতিরিক্ত বিট, যা বাদ দেওয়া হয় (সমস্যা নেই)।
- ওভারফ্লো: একটি এরর বা ত্রুটি, যা নির্দেশ করে যে উত্তরটি ভুল (সমস্যা আছে)।

পরীক্ষার টিপস (Exam Tip): সৃজনশীল প্রশ্নে যদি দেখো যোগফলের সাইন বিট প্রত্যাশিত চিহ্নের উল্টো এসেছে (যেমন দুই পজিটিভ যোগ করে নেগেটিভ), তখন মন্তব্যে অবশ্যই লিখবে "এখানে ওভারফ্লো ঘটেছে, তাই ফলাফল সঠিক নয়।"

সংক্ষিপ্ত সারাংশ (Quick Revision)

  • কম্পিউটার বিয়োগের কাজ যোগের মাধ্যমে করে (২-এর পরিপূরক ব্যবহার করে)।
  • ২-এর পরিপূরক = ১-এর পরিপূরক + ১।
  • ঋণাত্মক সংখ্যার সাইন বিট ১, ধনাত্মক সংখ্যার ০।
  • ৮-বিট রেজিস্টারে সংখ্যার রেঞ্জ -১২৮ থেকে +১২৭
  • ক্যারি বিট বাদ দেওয়া হয়, কিন্তু ওভারফ্লো হলে ফলাফল ভুল হয়।
  • ২-এর পরিপূরক ব্যবহারে +০ এবং -০ এর সমস্যা থাকে না।

গুরুত্বপূর্ণ পরিভাষা (Glossary)

পরিভাষা (Term) সংজ্ঞা (Definition)
MSB (Most Significant Bit) বাইনারি সংখ্যার সর্ববাম বিট বা সর্বোচ্চ গুরুত্বের বিট, যা সাইন বিট হিসেবে কাজ করে।
2's Complement ঋণাত্মক সংখ্যা প্রকাশের আধুনিক পদ্ধতি যা ১-এর পরিপূরকের সাথে ১ যোগ করে পাওয়া যায়।
Register সিপিইউ (CPU) এর অভ্যন্তরে দ্রুতগতির মেমরি যা বিট সংরক্ষণ করে।
Carry Bit যোগফলের সর্বোচ্চ বিট (MSB) হতে উৎপন্ন অতিরিক্ত বিট যা রেজিস্টারের বাইরে চলে যায়।
Overflow রেজিস্টারের ধারণক্ষমতার চেয়ে বেশি মানের ফলাফল আসার ত্রুটি।

অনুশীলনের প্রশ্ন

সৃজনশীল প্রশ্ন

সৃজনশীল প্রশ্ন ১

সুমনের কম্পিউটারটি অনেক পুরনো মডেলের, যা বিয়োগের কাজ সরাসরি করতে পারে না। কিন্তু তার বন্ধু তাকে বলল, "আধুনিক কম্পিউটারগুলো আসলে বিয়োগের কাজ যোগের মাধ্যমেই করে।" এরপর সে ২-এর পরিপূরক পদ্ধতির কথা উল্লেখ করে সুমনকে বিষয়টি বুঝিয়ে দিল। সুমন ২৫ এবং ১২ সংখ্যা দুটি নিয়ে এই পদ্ধতি পরীক্ষা করতে চাইল।

(ক) ২-এর পরিপূরক কী?
(খ) "বিয়োগের কাজ যোগের মাধ্যমে করা সম্ভব" — ব্যাখ্যা কর।
(গ) ৮-বিট রেজিস্টার ব্যবহার করে উদ্দীপকের সংখ্যাদ্বয়ের বিয়োগফল ২-এর পরিপূরক পদ্ধতিতে নির্ণয় কর।
(ঘ) ডিজিটাল বর্তনী সরলীকরণে ২-এর পরিপূরক পদ্ধতির ভূমিকা বিশ্লেষণ কর।

উত্তর

(ক) কোনো বাইনারি সংখ্যার ১-এর পরিপূরক (1's Complement) এর সাথে ১ যোগ করলে যে মান পাওয়া যায়, তাকে ২-এর পরিপূরক (2's Complement) বলে।

(খ) কম্পিউটারের সিপিইউ (CPU) সরাসরি বিয়োগ করতে পারে না। কিন্তু ঋণাত্মক সংখ্যার মান ২-এর পরিপূরক পদ্ধতিতে বের করে তার সাথে ধনাত্মক সংখ্যা যোগ করলে বিয়োগের ফলাফল পাওয়া যায়। অর্থাৎ, $A - B$ কে $A + (-B)$ হিসেবে সাজিয়ে যোগের বর্তনী ব্যবহার করেই বিয়োগ সম্পন্ন করা হয়। এ কারণেই বলা হয় বিয়োগের কাজ যোগের মাধ্যমে করা সম্ভব।

(গ) উদ্দীপকের সংখ্যা দুটি হলো ২৫ এবং ১২। আমাদের নির্ণয় করতে হবে $(২৫)_{১০} - (১২)_{১০}$।
এখানে, $+২৫$ এর বাইনারি = $০০০১$ $১০০১$ (৮-বিটে)
$-১২$ এর মান বের করতে হবে ২-এর পরিপূরক পদ্ধতিতে।

  1. $+১২$ এর বাইনারি (৮-বিটে) = $০০০০$ $১১০০$
  2. ১-এর পরিপূরক (বিট উল্টিয়ে) = $১১১১$ $০০১১$
  3. ১ যোগ করি = $+ ১$

$-১২$ এর ২-এর পরিপূরক মান = $১১১১$ $০১০০$

এখন, $+২৫$ এবং $-১২$ যোগ করি:
$+২৫$ $\rightarrow$ $০০০১$ $১০০১$
$-১২$ $\rightarrow$ $১১১১$ $০১০০$


যোগফল $\rightarrow$ $১$ $০০০$ $১১০১$

এখানে ৯ম বিটটি ক্যারি বিট (1), যা ৮-বিট রেজিস্টারে ওভারফ্লো হিসেবে বাদ যাবে।
ফলাফল: $০০০০$ $১১০১$, যার দশমিক মান ১৩।
সুতরাং, বিয়োগফল ১৩।

(ঘ) ডিজিটাল বর্তনী বা লজিক সার্কিট সরলীকরণে ২-এর পরিপূরক পদ্ধতির ভূমিকা অপরিসীম। নিচে তা বিশ্লেষণ করা হলো:
১. সরল বর্তনী ডিজাইন: সাধারণ গাণিতিক কাজে যোগ ও বিয়োগের জন্য আলাদা আলাদা সার্কিট বা বর্তনী প্রয়োজন হয়। কিন্তু ২-এর পরিপূরক পদ্ধতি ব্যবহার করলে বিয়োগের কাজ যোগের বর্তনী (Adder Circuit) দিয়েই করা যায়। ফলে বিয়োগের জন্য আলাদা সার্কিট তৈরির প্রয়োজন হয় না।
২. খরচ ও জটিলতা হ্রাস: যেহেতু একই বর্তনী দিয়ে যোগ ও বিয়োগ উভয়ই করা যায়, তাই হার্ডওয়্যারের জটিলতা কমে এবং তৈরি খরচ সাশ্রয় হয়।
৩. দ্রুত গতির প্রক্রিয়াকরণ: ১-এর পরিপূরক বা সাইন-ম্যাগনিচিউড পদ্ধতিতে 'শূন্য' (0) এর জন্য দুটি মান (+0 ও -0) থাকে, যা গাণিতিক কাজে জটিলতা সৃষ্টি করে। কিন্তু ২-এর পরিপূরক পদ্ধতিতে 'শূন্য' এর একটিই মান থাকে, যা সিদ্ধান্ত গ্রহণে কম্পিউটারকে দ্রুত কাজ করতে সাহায্য করে।
অতএব, কম্পিউটারের অভ্যন্তরীণ গঠন সরল ও সাশ্রয়ী করতে ২-এর পরিপূরক পদ্ধতি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে।


সৃজনশীল প্রশ্ন ২

একাদশ শ্রেণির ছাত্র মি. এক্স পরীক্ষাগারে -৪৫ এবং +৩০ সংখ্যা দুটি নিয়ে কাজ করছেন। তিনি সংখ্যা দুটির বাইনারি মান বের করে তাদের যোগফল নির্ণয় করতে চাইলেন ২-এর পরিপূরক পদ্ধতিতে। শিক্ষক তাকে বললেন, "সঠিক ফলাফল পেতে রেজিস্টারের বিট সংখ্যার দিকে খেয়াল রাখবে।"

(ক) সাইন বিট কী?
(খ) ১-এর পরিপূরক অপেক্ষা ২-এর পরিপূরক কেন বেশি জনপ্রিয়?
(গ) উদ্দীপকের -৪৫ সংখ্যাটির ৮-বিট রেজিস্টারে ২-এর পরিপূরক মান নির্ণয় কর।
(ঘ) উদ্দীপকের সংখ্যা দুটির যোগফল ২-এর পরিপূরক পদ্ধতিতে নির্ণয় কর এবং ফলাফল যাচাই কর।

উত্তর

(ক) রেজিস্টারে কোনো বাইনারি সংখ্যার সর্বশেষ বা সর্ববামে যে বিটটি সংখ্যাটি ধনাত্মক না ঋণাত্মক তা নির্দেশ করে, তাকে চিহ্ন বিট বা সাইন বিট (Sign Bit) বলে। (০ হলে ধনাত্মক, ১ হলে ঋণাত্মক)।

(খ) ১-এর পরিপূরক পদ্ধতিতে শূন্যের জন্য দুটি মান থাকে ($+০$ এর জন্য $০০...০০$ এবং $-০$ এর জন্য $১১...১১$), যা গাণিতিক যুক্তিতে বিভ্রান্তি সৃষ্টি করে। কিন্তু ২-এর পরিপূরক পদ্ধতিতে শূন্যের জন্য কেবল একটিই মান ($০০...০০$) থাকে। এছাড়া ২-এর পরিপূরক পদ্ধতিতে যোগ ও বিয়োগের কাজ একই বর্তনী দিয়ে সহজে ও দ্রুত করা যায়। একারণেই ১-এর পরিপূরক অপেক্ষা ২-এর পরিপূরক বেশি জনপ্রিয়।

(গ) উদ্দীপকের সংখ্যাটি হলো $-৪৫$। এর ২-এর পরিপূরক মান বের করার ধাপগুলো নিচে দেওয়া হলো:
ধাপ-১: $+৪৫$ এর প্রকৃত বাইনারি মান নির্ণয়।
$৪৫ = ৩২ + ৮ + ৪ + ১ \rightarrow ১০১১০১$
৮-বিট রেজিস্টারে $+৪৫ = ০০১০$ $১১০১$

ধাপ-২: ১-এর পরিপূরক নির্ণয় (বিটগুলো উল্টিয়ে)।
$০০১০$ $১১০১ \rightarrow ১১০১$ $০০১০$

ধাপ-৩: ১-এর পরিপূরকের সাথে ১ যোগ করে ২-এর পরিপূরক নির্ণয়।
$১১০১$ $০০১০$
$+ ১$


$১১০১$ $০০১১$

সুতরাং, $-৪৫$ এর ২-এর পরিপূরক মান হলো $১১০১$ $০০১১$।

(ঘ) উদ্দীপকের সংখ্যা দুটি হলো $-৪৫$ এবং $+৩০$।
আমরা জানি, কম্পিউটার বিয়োগের কাজও যোগের মাধ্যমে করে। তাই সংখ্যা দুটি সরাসরি যোগ করা হবে।
১. $+৩০$ এর বাইনারি (৮-বিটে):
$৩০ = ১৬ + ৮ + ৪ + ২ \rightarrow ১১১১০$
৮-বিট রেজিস্টারে $+৩০ = ০০০১$ $১১১০$

  1. $-৪৫$ এর মান (গ) হতে প্রাপ্ত: $১১০১$ $০০১১$

এখন যোগ করি:
$+৩০ \rightarrow$ $০০০১$ $১১১০$
$-৪৫ \rightarrow$ $১১০১$ $০০১১$


যোগফল $\rightarrow$ $১১১১$ $০০০১$

ফলাফল বিশ্লেষণ ও যাচাই:
প্রাপ্ত যোগফল $১১১১$ $০০০১$।
সর্ববাম বিট বা সাইন বিট '১', তাই ফলাফলটি ঋণাত্মক।
প্রকৃত মান বের করতে ফলাফলটিকে পুনরায় ২-এর পরিপূরক করতে হবে:
$১১১১$ $০০০১ \rightarrow ০০০০$ $১১১০$ (১-এর পরিপূরক)
$০০০০$ $১১১০ + ১ = ০০০০$ $১১১১$
$০০০০$ $১১১১$ এর দশমিক মান ১৫।
যেহেতু সাইন বিট ১ ছিল, তাই প্রকৃত ফলাফল $-১৫$।

গাণিতিক যাচাই:
$(-৪৫) + (+৩০) = -১৫$।
আমাদের ২-এর পরিপূরক পদ্ধতির ফলাফলও $-১৫$ এসেছে। সুতরাং ফলাফল সঠিক।


সৃজনশীল প্রশ্ন ৩

আইসিটি ক্লাসে শিক্ষক বললেন, "কম্পিউটার বা ডিজিটাল ডিভাইসে শুধুমাত্র 'যোগ' এর মাধ্যমেই যাবতীয় গাণিতিক কাজ সম্পন্ন করা হয়। এজন্য একটি বিশেষ পদ্ধতি ব্যবহার করা হয় যা ঋণাত্মক সংখ্যা প্রকাশের জন্যও আদর্শ।" এরপর তিনি বোর্ডে দুটি সংখ্যা লিখলেন: $A = (৫৭)_{১০}$ এবং $B = (২৯)_{১০}$।

(ক) রেজিস্টার কী?
(খ) BCD কোড এবং বাইনারি সংখ্যার মধ্যে পার্থক্য লিখ।
(গ) ৮-বিট রেজিস্টারে ২-এর পরিপূরক পদ্ধতিতে (A - B) এর মান নির্ণয় কর।
(ঘ) যদি A ও B উভয়ই ঋণাত্মক হতো, তবে ৮-বিট রেজিস্টারে তাদের যোগফল নির্ণয়ে কোনো সমস্যা হতো কি? বিশ্লেষণ কর।

উত্তর

(ক) রেজিস্টার হলো সিপিইউ-এর অভ্যন্তরে অবস্থিত দ্রুতগতির ক্ষুদ্র মেমোরি, যা প্রসেসিংয়ের সময় অস্থায়ীভাবে ডেটা, অ্যাড্রেস বা ইনস্ট্রাকশন সংরক্ষণ করে।

(খ) BCD (Binary Coded Decimal) কোড এবং বাইনারি সংখ্যার মূল পার্থক্য হলো: বাইনারি সংখ্যা হলো একটি সংখ্যা পদ্ধতি যার ভিত্তি ২, কিন্তু BCD কোনো সংখ্যা পদ্ধতি নয়, এটি দশমিক অংককে বাইনারিতে প্রকাশের একটি কোডিং পদ্ধতি। বাইনারিতে সম্পূর্ণ সংখ্যার মান বের করা হয়, আর BCD-তে প্রতিটি দশমিক অংকের জন্য পৃথক ৪-বিটের বাইনারি মান ব্যবহার করা হয়। যেমন: $(১৩)_{১০}$ এর বাইনারি $১১০১$, কিন্তু BCD কোড $০০০১$ $০০১১$।

(গ) উদ্দীপকে $A = ৫7$ এবং $B = ২৯$। নির্ণয় করতে হবে $A - B$ বা $৫৭ - ২৯$।
এটি করার জন্য আমরা $৫৭$ এর সাথে $(-২৯)$ যোগ করব।

  1. $+৫৭$ এর বাইনারি:
    $৫৭ = ৩২ + ১৬ + ৮ + ১ \rightarrow ১১১০০১$
    ৮-বিট রেজিস্টারে $+৫৭ = ০০১১$ $১০০১$

  2. $-২৯$ এর ২-এর পরিপূরক নির্ণয়:
    $+২৯$ এর বাইনারি $\rightarrow ০০০১$ $১১০১$
    ১-এর পরিপূরক $\rightarrow ১১১০$ $০০১০$
    ১ যোগ $\rightarrow ১১১০$ $০০১১$
    সুতরাং $-২৯ = ১১১০$ $০০১১$

  3. যোগফল নির্ণয়:
    $+৫৭ \rightarrow$ $০০১১$ $১০০১$
    $-২৯ \rightarrow$ $১১১০$ $০০১১$


যোগফল $\rightarrow$ $১$ $০০০১$ $১১০০$

এখানে ক্যারি বিট ১ বিবেচনা করা হয় না।
সাইন বিট ০, তাই ফলাফল ধনাত্মক।
ফলাফল: $০০০১$ $১১০০$, যার দশমিক মান $১৬ + ৮ + ৪ = ২৮$।
সাধারণ বিয়োগ: $৫৭ - ২৯ = ২৮$। ফলাফল মিলেছে।

(ঘ) যদি $A$ ও $B$ উভয়ই ঋণাত্মক হতো, তবে সংখ্যা দুটি হতো $-৫৭$ এবং $-২৯$।
তখন তাদের যোগফল হতো $(-৫৭) + (-২৯) = -৮৬$।

৮-বিট রেজিস্টারে সাইন বিটসহ সংখ্যার রেঞ্জ বা সীমা হলো $-১২৮$ থেকে $+১২৭$।
আমাদের কাঙ্ক্ষিত যোগফল $-৮৬$, যা এই রেঞ্জের মধ্যেই অবস্থিত।
তবে, আসুন দেখি যোগফলের প্রক্রিয়ায় কোনো 'ওভারফ্লো' ঘটে কি না।

  1. $-৫৭$ এর ২-এর পরিপূরক:
    $+৫৭ = ০০১১$ $১০০১ \rightarrow$ ১-এর পরিপূরক $১১০০$ $০১১১০ \rightarrow$ ২-এর পরিপূরক $১১০০$ $০১১১$

  2. $-২৯$ এর ২-এর পরিপূরক:
    $+২৯ = ০০০১$ $১১০১ \rightarrow$ ১-এর পরিপূরক $১১১০$ $০০১০ \rightarrow$ ২-এর পরিপূরক $১১১০$ $০০১১$

  3. যোগফল:
    $-৫৭ \rightarrow$ $১১০০$ $০১১১$
    $-২৯ \rightarrow$ $১১১০$ $০০১১$


যোগফল $\rightarrow$ $১$ $১০১০$ $১০১০$

এখানে ক্যারি বিট ১ বাদ দিলে থাকে $১০১০$ $১০১০$।
সাইন বিট ১, অর্থাৎ ফলাফল ঋণাত্মক।
প্রকৃত মান জানতে ২-এর পরিপূরক করি:
$১০১০$ $১০১০ \rightarrow$ ১-এর পরিপূরক $০১০১$ $০১০১ \rightarrow$ যোগ ১ = $০১০১$ $০১১০$
$০১০১$ $০১১০ = ৬৪ + ১৬ + ৪ + ২ = ৮৬$।
সুতরাং নির্ণীত ফলাফল $-৮৬$।

বিশ্লেষণ: যেহেতু যোগফল (-৮৬) ৮-বিট রেজিস্টারের ধারণক্ষমতার ($-১২৮$ থেকে $+১২৭$) মধ্যেই আছে এবং সাইন বিট সঠিক আছে, তাই এক্ষেত্রে কোনো সমস্যা বা 'ওভারফ্লো' হবে না। তবে যোগফল যদি $-১২৮$ এর চেয়ে ছোট বা $+১২৭$ এর চেয়ে বড় হতো, তবে ওভারফ্লো সমস্যা দেখা দিত এবং ফলাফল ভুল আসত।

এমসিকিউ

১। ২-এর পরিপূরক পদ্ধতিতে ঋণাত্মক সংখ্যা গঠনের জন্য কোনটি অপরিহার্য?

ক) সাইন-ম্যাগনিচিউড গঠন
খ) ১-এর পরিপূরকের সাথে ১ যোগ
গ) ১-এর পরিপূরক থেকে ১ বিয়োগ
ঘ) বিটগুলোকে উল্টিয়ে দেওয়া

সঠিক উত্তর: খ) ১-এর পরিপূরকের সাথে ১ যোগ

ব্যাখ্যা: ২-এর পরিপূরক নির্ণয়ের নিয়ম হলো প্রদত্ত বাইনারি সংখ্যার ১-এর পরিপূরক (Bit reversal) বের করে তার সাথে ১ যোগ করা।


২। ৮-বিট রেজিস্টারে ২-এর পরিপূরক পদ্ধতিতে গঠিত সংখ্যার রেঞ্জ কত?

ক) -১২৮ থেকে +১২৭
খ) -১২৭ থেকে +১২৭
গ) ০ থেকে ২৫৫
ঘ) -২৫৬ থেকে +২৫৫

সঠিক উত্তর: ক) -১২৮ থেকে +১২৭

ব্যাখ্যা: n-বিট রেজিস্টারে ২-এর পরিপূরক সংখ্যার রেঞ্জ হলো $-2^{n-1}$ থেকে $+(2^{n-1}-1)$। ৮-বিটের ক্ষেত্রে এটি $-2^7$ বা $-128$ থেকে $+(2^7-1)$ বা $+127$।


৩। ১-এর পরিপূরক পদ্ধতিতে 'শূন্য' (0) এর কয়টি মান থাকে?

ক) ১টি
খ) ২টি
গ) ৩টি
ঘ) ৪টি

সঠিক উত্তর: খ) ২টি

ব্যাখ্যা: ১-এর পরিপূরক পদ্ধতিতে শূন্যের দুটি উপস্থাপনা থাকে: ধনাত্মক শূন্য (০০...০০) এবং ঋণাত্মক শূন্য (১১...১১)। এটি এই পদ্ধতির একটি অসুবিধা।


৪। ডিজিটাল বর্তনীতে ২-এর পরিপূরক ব্যবহারের প্রধান সুবিধা কোনটি?

ক) মেমোরি কম লাগে
খ) বর্তনী জটিল হয়
গ) বিয়োগের কাজ যোগের বর্তনী দিয়ে করা যায়
ঘ) গুণ ও ভাগের কাজ সহজ হয়

সঠিক উত্তর: গ) বিয়োগের কাজ যোগের বর্তনী দিয়ে করা যায়

ব্যাখ্যা: ২-এর পরিপূরক পদ্ধতির সবচেয়ে বড় সুবিধা হলো এটি ব্যবহার করে বিয়োগের কাজকে যোগের প্রক্রিয়ায় রূপান্তর করা যায়, ফলে একই অ্যাডার সার্কিট দিয়ে যোগ ও বিয়োগ উভয়ই সম্ভব হয়।


৫। $(১০১১০)_2$ সংখ্যাটির ২-এর পরিপূরক মান কত (৮-বিট রেজিস্টারে)?

ক) ১১১০১০১০
খ) ১১১০১০১১
গ) ১১১০১০০১
ঘ) ০০১০১০১০

সঠিক উত্তর: ক) ১১১০১০১০

ব্যাখ্যা: ৮-বিটে সংখ্যাটি $০০১$ $০১১০$।
১-এর পরিপূরক: $১১০$ $১০০১$
১ যোগ: $১১০$ $১০১০$


৬। কোন পদ্ধতিতে +0 এবং -0 এর জন্য অদ্বিতীয় (Unique) কোড বিদ্যমান?

ক) প্রকৃত মান গঠন (Sign Magnitude)
খ) ১-এর পরিপূরক
গ) ২-এর পরিপূরক
ঘ) BCD কোড

সঠিক উত্তর: গ) ২-এর পরিপূরক

ব্যাখ্যা: ২-এর পরিপূরক পদ্ধতিতে শূন্যের জন্য কেবল একটিই মান (সবগুলো বিট ০) থাকে, যা গাণিতিক হিসাবের জটিলতা কমায়।


৭। ২-এর পরিপূরক পদ্ধতিতে একটি বাইনারি সংখ্যার মান কখন ঋণাত্মক হয়?

ক) যখন সর্বডানের বিট ১ হয়
খ) যখন সর্ববামের বিট (MSB) ১ হয়
গ) যখন সর্ববামের বিট (MSB) ০ হয়
ঘ) যখন বিট সংখ্যা জোড় হয়

সঠিক উত্তর: খ) যখন সর্ববামের বিট (MSB) ১ হয়

ব্যাখ্যা: রেজিস্টারের সর্ববামের বিটটিকে সাইন বিট বা চিহ্ন বিট বলা হয়। এই বিট ১ হলে সংখ্যাটি ঋণাত্মক এবং ০ হলে ধনাত্মক ধরা হয়।


৮। $(১১১১১১১১)_2$ সংখ্যাটি ২-এর পরিপূরক পদ্ধতিতে কোন দশমিক মান নির্দেশ করে?

ক) -১২৭
খ) -১
গ) -০
ঘ) -২৫৫

সঠিক উত্তর: খ) -১

ব্যাখ্যা: সাইন বিট ১, তাই এটি ঋণাত্মক। মান বের করতে পুনরায় ২-এর পরিপূরক করতে হবে।
$১১১১১১১১ \rightarrow ০০০০০০০০$ (১-এর পরিপূরক) $\rightarrow ০০০০০০০১$ (যোগ ১)। মান ১, যেহেতু ঋণাত্মক তাই -১।


৯। ২-এর পরিপূরক নির্ণয়ের সঠিক ধাপ কোনটি?
i. সংখ্যাটির বাইনারি মান নির্ণয়
ii. বিটগুলো উল্টিয়ে ১-এর পরিপূরক করা
iii. ১-এর পরিপূরকের সাথে ১ যোগ করা

নিচের কোনটি সঠিক?
ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: ঘ) i, ii ও iii

ব্যাখ্যা: ২-এর পরিপূরক বের করতে প্রথমে বাইনারি মান, এরপর ১-এর পরিপূরক এবং শেষে তার সাথে ১ যোগ করতে হয়।


১০। সাইনড বা চিহ্নযুক্ত সংখ্যার ক্ষেত্রে ৮-বিট রেজিস্টারে -১২৮ লেখার জন্য কোনটি সঠিক?

ক) ১০০০ ০০০০
খ) ১১১১ ১১১১
গ) ১০০০ ০০০১
ঘ) ০১১১ ১১১১

সঠিক উত্তর: ক) ১০০০ ০০০০

ব্যাখ্যা: ৮-বিট ২-এর পরিপূরক পদ্ধতিতে সর্বনিম্ন সংখ্যা -১২৮ এর মান হলো ১০০০ ০০০০।


১১। ২-এর পরিপূরক পদ্ধতিতে ১ বাইট জায়গায় সর্বোচ্চ কত ধনাত্মক সংখ্যা রাখা যাবে?

ক) ২৫৬
খ) ২৫৫
গ) ১২৮
ঘ) ১২৭

সঠিক উত্তর: ঘ) ১২৭

ব্যাখ্যা: ১ বাইট = ৮ বিট। ১টি বিট চিহ্নের জন্য। বাকি ৭ বিট মানের জন্য। $2^7 - 1 = 127$।


১২। দুটি ধনাত্মক সংখ্যা যোগ করলে যদি ফলাফল রেজিস্টারের ধারণক্ষমতা অতিক্রম করে, তাকে কী বলে?

ক) আন্ডারফ্লো
খ) ওভারফ্লো
গ) সিস্টেম এরর
ঘ) প্যারিটি এরর

সঠিক উত্তর: খ) ওভারফ্লো

ব্যাখ্যা: যখন দুটি সংখ্যার যোগফল নির্ধারিত বিট সংখ্যার চেয়ে বেশি বিট দখল করে এবং সাইন বিট পরিবর্তিত হয়ে যায়, তখন তাকে ওভারফ্লো বলে।


১৩। ৫-বিট রেজিস্টারে -১৩ এর ২-এর পরিপূরক মান কত?

ক) ১০০১১
খ) ১১০০১
গ) ১০১০১
ঘ) ১০০০১

সঠিক উত্তর: ক) ১০০১১

ব্যাখ্যা: $+১৩ = ০১১০১$।
১-এর পরিপূরক = $১০০১০$।
১ যোগ = $১০০১১$।


১৪। ডিজিটাল সিস্টেমে ঋণাত্মক সংখ্যা সংরক্ষণের পদ্ধতিগুলো হলো—
i. প্রকৃত মান গঠন (Sign Magnitude)
ii. ১-এর পরিপূরক
iii. ২-এর পরিপূরক

নিচের কোনটি সঠিক?
ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: ঘ) i, ii ও iii

ব্যাখ্যা: কম্পিউটারে ঋণাত্মক সংখ্যা প্রকাশের জন্য এই তিনটি পদ্ধতিই ব্যবহৃত হতে পারে, তবে ২-এর পরিপূরক সবচেয়ে জনপ্রিয়।


১৫। $(+১২)_2$ এবং $(-১২)_2$ যোগ করলে ফলাফল কত হবে (৮-বিটে)?

ক) ১১১১১১১১
খ) ১০০০ ০০০১
গ) ০০০০ ০০০০
ঘ) ১ ০০০০ ০০০০

সঠিক উত্তর: ঘ) ১ ০০০০ ০০০০

ব্যাখ্যা: $+১২ = ০০০০$ $১১০০$ এবং $-১২ = ১১১১$ $০১০০$। যোগ করলে $১$ $০০০০$ $০০০০$ হয়। ৮-বিট রেজিস্টারে ক্যারি ১ বাদ গেলে ফলাফল $০০০০$ $০০০০$ বা শূন্য হয়।


১৬। ২-এর পরিপূরক পদ্ধতিতে বিয়োগের সময় ক্যারি বিট (Carry Bit) কী করা হয়?

ক) যোগ করা হয়
খ) বিয়োগ করা হয়
গ) বিবেচনা করা হয় না (বাদ দেওয়া হয়)
ঘ) এরর হিসেবে দেখানো হয়

সঠিক উত্তর: গ) বিবেচনা করা হয় না (বাদ দেওয়া হয়)

ব্যাখ্যা: ২-এর পরিপূরক যোগে যদি ক্যারি বিট উৎপন্ন হয়, তবে তা বাদ দেওয়া হয় বা ডিসকার্ড করা হয়।


উদ্দীপকটি পড়ে ১৭ ও ১৮ নং প্রশ্নের উত্তর দাও:
মি. রফিক তার ক্যালকুলেটরে দেখলেন $A = 101011$ এবং $B = 010101$ দুটি ৬-বিটের সংখ্যা। তিনি ২-এর পরিপূরক ব্যবহার করে বিয়োগ করতে চান।

১৭। উদ্দীপকের B সংখ্যাটির ২-এর পরিপূরক মান কত?

ক) ১০১০১০
খ) ১০১০১১
গ) ০১১০১০
ঘ) ১০১০১০০

সঠিক উত্তর: খ) ১০১০১১

ব্যাখ্যা: $B = ০১০১০১$। ১-এর পরিপূরক $১০১০১০$। এর সাথে ১ যোগ করলে হয় $১০১০১১$।


১৮। A এর সাথে B এর ২-এর পরিপূরক যোগ করলে ফলাফলের সাইন বিট কী হবে?

ক) ০
খ) ১
গ) ১০
ঘ) ১১

সঠিক উত্তর: ক) ০

ব্যাখ্যা: $A = ১০১০১১$ (দশমিক ৪৩), $B = ২১$। $A-B$ করলে ফলাফল ধনাত্মক হবে। তাই সাইন বিট ০ হবে।


১৯। কোন গেট বা বর্তনী ব্যবহার করে ২-এর পরিপূরক নির্ণয় করা যায়?
i. নট (NOT) গেট
ii. অ্যাডার (Adder) সার্কিট
iii. ডিকোডার

নিচের কোনটি সঠিক?
ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: ক) i ও ii

ব্যাখ্যা: বিট উল্টানোর জন্য NOT গেট এবং ১ যোগ করার জন্য Adder সার্কিট প্রয়োজন।


২০। ১৬-বিট রেজিস্টারে ২-এর পরিপূরক পদ্ধতিতে সর্বনিম্ব কত মান রাখা যায়?

ক) -৩২৭৬৮
খ) -৩২৭৬৭
গ) -৬৫৫৩৬
ঘ) -৬৫৫৩৫

সঠিক উত্তর: ক) -৩২৭৬৮

ব্যাখ্যা: ১৬-বিটের রেঞ্জ $-2^{15}$ থেকে $+2^{15}-1$। $-2^{15} = -32768$।


২১। ২-এর পরিপূরক পদ্ধতিতে -১১৪ সংখ্যাটির ৮-বিট বাইনারি রূপ কোনটি?

ক) ১০০০০১১১
খ) ১০০০১১১০
গ) ১০০০১১১০
ঘ) ১০০১১১১০

সঠিক উত্তর: ঘ) ১০০১১১১০

ব্যাখ্যা: $+১১৪ = ০১১১$ $০০১০$। ১-এর পরিপূরক $১০০০$ $১১০১$। যোগ ১ = $১০০০$ $১১১০$।


২২। কম্পিউটার সিস্টেমে যোগ-বিয়োগের গতি বাড়ানোর জন্য কোনটি সহায়ক?

ক) ১-এর পরিপূরক
খ) ২-এর পরিপূরক
গ) সাইন-ম্যাগনিচিউড
ঘ) ফ্লোটিং পয়েন্ট

সঠিক উত্তর: খ) ২-এর পরিপূরক

ব্যাখ্যা: ২-এর পরিপূরক পদ্ধতিতে যোগ-বিয়োগের জন্য একই বর্তনী ব্যবহৃত হয় এবং +0/-0 সমস্যা নেই বলে প্রসেসিং দ্রুত হয়।


২৩। ১-এর পরিপূরক পদ্ধতিতে যোগ করার পর ক্যারি থাকলে কী করতে হয়?

ক) বাদ দিতে হয়
খ) ফলাফলের সাথে ১ যোগ করতে হয়
গ) ফলাফলের সাথে ১ বিয়োগ করতে হয়
ঘ) এরর দেখাতে হয়

সঠিক উত্তর: খ) ফলাফলের সাথে ১ যোগ করতে হয়

ব্যাখ্যা: ১-এর পরিপূরক পদ্ধতিতে যোগের সময় ক্যারি বিট থাকলে সেটি বা 'End Around Carry' কে ফলাফলের সাথে যোগ করতে হয়। কিন্তু ২-এর পরিপূরকে তা বাদ দেওয়া হয়।


২৪। 4-বিট রেজিস্টারে (+5) এবং (-6) যোগ করলে ফলাফল কী হবে?

ক) 0001
খ) 1111
গ) 1001
ঘ) 1110

সঠিক উত্তর: খ) 1111

ব্যাখ্যা: $+5 = 0101$। $-6 = 1010$ (2's comp)।
যোগ: $0101 + 1010 = 1111$।
$1111$ এর মান $-1$, যা সঠিক ফলাফল।


২৫। ২-এর পরিপূরক পদ্ধতি ডিজিটাল ডিভাইসে গুরুত্বপূর্ণ কেন?
i. লজিক সার্কিট সরল করে
ii. হার্ডওয়্যার খরচ কমায়
iii. শুধুমাত্র পজিটিভ সংখ্যা নিয়ে কাজ করে

নিচের কোনটি সঠিক?
ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: ক) i ও ii

ব্যাখ্যা: ২-এর পরিপূরক পজিটিভ ও নেগেটিভ উভয় সংখ্যা নিয়েই কাজ করে, তাই iii সঠিক নয়। এটি সার্কিট সরল করে ও খরচ কমায়।