বাইনারি যোগ-বিয়োগ ও চিহ্নযুক্ত সংখ্যা
এইচএসসি আইসিটি অধ্যায় ৩: বাইনারি যোগ ও বিয়োগের নিয়ম, চিহ্নযুক্ত সংখ্যা বা Signed Number এর ধারণা, সাইন বিট, প্রকৃত মান গঠন এবং ১-এর পরিপূরক নিয়ে বিস্তারিত আলোচন
বাইনারি যোগ-বিয়োগ ও চিহ্নযুক্ত সংখ্যা
- বাইনারি যোগ-বিয়োগ ও চিহ্নযুক্ত সংখ্যা
- কম্পিউটার কি 'মাইনাস' (-) চেনে?
- বাইনারি যোগের নিয়মাবলী
- বাইনারি যোগ: উদাহরণ ও অনুশীলন
- বাইনারি বিয়োগের নিয়মাবলী
- বাইনারি বিয়োগ: উদাহরণ
- চিহ্নযুক্ত সংখ্যা (Signed Number)
- চিহ্নযুক্ত সংখ্যা ও সাইন বিট (Sign Bit)
- ৮-বিট রেজিস্টারের গঠন
- ঋণাত্মক সংখ্যা প্রকাশের পদ্ধতি
- ১. প্রকৃত মান গঠন (Sign Magnitude)
- প্রকৃত মান গঠনের সীমাবদ্ধতা
- ২. ১-এর পরিপূরক (1's Complement)
- ১-এর পরিপূরক: উদাহরণ
- সারসংক্ষেপ ও বাড়ির কাজ
বাইনারি যোগ-বিয়োগ ও চিহ্নযুক্ত সংখ্যা: বিস্তারিত আলোচনা ও পরীক্ষার প্রস্তুতি
আধুনিক কম্পিউটারের গাণিতিক কাজের ভিত্তি হলো বাইনারি সংখ্যা পদ্ধতি। আমরা দৈনন্দিন জীবনে দশমিক সংখ্যায় যোগ-বিয়োগ করলেও কম্পিউটার অভ্যন্তরীণভাবে শুধুমাত্র ০ এবং ১ ব্যবহার করে সব গাণিতিক কাজ সম্পাদন করে। লেকচারে আমরা জেনেছি যে কম্পিউটার সরাসরি 'বিয়োগ' বা 'মাইনাস' চিহ্ন চেনে না; সে বিয়োগের কাজটিও যোগের মাধ্যমে সম্পন্ন করে। এজন্য চিহ্নযুক্ত সংখ্যা (Signed Number) এবং এর বিভিন্ন রূপ (যেমন ১-এর পরিপূরক) সম্পর্কে স্বচ্ছ ধারণা থাকা জরুরি।
এই অধ্যায়ে আমরা বাইনারি যোগ ও বিয়োগের খুঁটিনাটি নিয়মগুলো শিখব, যা সৃজনশীল প্রশ্নের 'গ' ও 'ঘ' অংশের গাণিতিক সমস্যা সমাধানের জন্য অপরিহার্য। বিশেষ করে ক্যারি (Carry) বা হাতে থাকা সংখ্যাটি কীভাবে কাজ করে এবং বড় সংখ্যার যোগফল নির্ণয়ে তার ভূমিকা কী, তা আমরা বিস্তারিত দেখব। এছাড়াও, ঋণাত্মক সংখ্যা প্রকাশের পদ্ধতিগুলো—যেমন প্রকৃত মান গঠন (Sign Magnitude) এবং ১-এর পরিপূরক (1's Complement)—নিয়ে আলোচনা করা হবে।
পরীক্ষার খাতায় নির্ভুল উত্তর করার জন্য এই বিষয়গুলো অত্যন্ত গুরুত্বপূর্ণ। অনেক সময় শিক্ষার্থীরা বাইনারি বিয়োগে 'ধার' (Borrow) নেয়ার নিয়মে ভুল করে অথবা রেজিস্টারের বিট সংখ্যা ঠিক রাখতে পারে না। এই রিডিং ম্যাটেরিয়ালটি এমনভাবে সাজানো হয়েছে যাতে তোমরা এই জটিল বিষয়গুলো সহজে আয়ত্ত করতে পারো এবং পরীক্ষায় সর্বোচ্চ নম্বর নিশ্চিত করতে পারো।
বাইনারি যোগ (Binary Addition): নিয়ম ও কৌশল
বাইনারি যোগ দশমিক যোগের মতোই, তবে এখানে অঙ্ক মাত্র দুটি (০ এবং ১)। বাইনারি যোগের চারটি মৌলিক নিয়ম রয়েছে যা মনে রাখা খুবই জরুরি। নিচে নিয়মগুলো দেওয়া হলো:
| ১ম বিট | ২য় বিট | যোগফল (Sum) | হাতে থাকে (Carry) | মন্তব্য |
|---|---|---|---|---|
| ০ | ০ | ০ | ০ | সাধারণ যোগ |
| ০ | ১ | ১ | ০ | সাধারণ যোগ |
| ১ | ০ | ১ | ০ | সাধারণ যোগ |
| ১ | ১ | ০ | ১ | ১+১ = ২ (বাইনারিতে ১০), তাই ০ বসে, ১ হাতে থাকে |
বিশেষ নিয়ম: যদি তিনটি ১ যোগ করতে হয় (যেমন: ১ + ১ + হাতের ১), তবে যোগফল হবে ১ এবং হাতে থাকবে ১। কারণ ১+১+১ = ৩, আর ৩ এর বাইনারি হলো ১১।
পরীক্ষার টিপস (Exam Tip):
পরীক্ষার খাতায় বড় যোগ করার সময় রাফ (Rough) অংশে কলামের উপরে হাতে থাকা 'ক্যারি' (Carry) বিটটি ছোট করে লিখে রাখা ভালো। এতে ভুল হওয়ার সম্ভাবনা কমে। মনে রাখবে, ১+১+১+১ = ৪ (বাইনারিতে ১০০), অর্থাৎ এক্ষেত্রে যোগফল ০ নামবে এবং হাতে থাকবে ১০ (দশমিকের ২)। তবে এইচএসসি পরীক্ষায় সচরাচর ৩টির বেশি ১ যোগ করতে হয় না।
রেডিক্স পয়েন্ট বা ভগ্নাংশের যোগ
পূর্ণ সংখ্যার পাশাপাশি ভগ্নাংশের যোগের ক্ষেত্রে নিয়ম একই। শুধু খেয়াল রাখতে হবে যেন রেডিক্স পয়েন্ট (দশমিক বিন্দু) একে অপরের ঠিক নিচে থাকে।
উদাহরণ (Worked Example):
যোগ কর: $১১০১.১০১_২ + ১০১১.১১_২$
সমাধান:
প্রথমে রেডিক্স পয়েন্ট ঠিক রেখে সংখ্যাগুলো সাজাই (প্রয়োজনে ডানে বা বামে শূন্য দিয়ে বিট সংখ্যা সমান করে নেয়া যায়):
১ ১ ১ ১ <- ক্যারি (হাতে থাকা সংখ্যা)
১ ১ ০ ১ . ১ ০ ১
+ ১ ০ ১ ১ . ১ ১ ০ (বামে ০ দিয়ে ৩ বিট করা হলো)
-------------------
১ ১ ০ ০ ১ . ০ ১ ১
ধাপসমূহ:
১. একদম ডানদিক থেকে: ১+০=১ (হাতে ০)
২. পরের বিট: ০+১=১ (হাতে ০)
৩. পরের বিট: ১+১=১০ -> ০ বসে, হাতে ১ (এই ১ দশমিকের বামে চলে আসবে)
৪. দশমিকের পরের ১ম বিট: ১+১+(হাতের ১)=১১ -> ১ বসে, হাতে ১
৫. এভাবে বামদিকের বাকি বিটগুলো যোগ করে চূড়ান্ত ফলাফল পাওয়া যায়: $১১০০১.০১১_২$
বাইনারি বিয়োগ (Binary Subtraction): ধার নেয়ার জটিলতা
বাইনারি বিয়োগ শিক্ষার্থীদের কাছে কিছুটা বিভ্রান্তিকর হতে পারে, বিশেষ করে যখন 'ধার' বা 'Borrow' করার প্রয়োজন হয়। দশমিক বিয়োগে যেমন ছোট সংখ্যা থেকে বড় সংখ্যা বিয়োগ করতে হলে আমরা বামের ঘর থেকে ১০ ধার নিই, বাইনারিতে আমরা ২ (বাইনারি বেস) ধার নিই।
মৌলিক নিয়ম:
- $০ - ০ = ০$
- $১ - ১ = ০$
- $১ - ০ = ১$
- $০ - ১ = ১$ (হাতে ধার ১ থাকে)
গুরুত্বপূর্ণ (Important):
ধার নেয়ার সহজ নিয়ম: যখনই ০ থেকে ১ বিয়োগ করতে হবে, তখনই বামের ঘর থেকে ২ (বাইনারি ১০) ধার নিতে হবে। এই ২ থেকে ১ বিয়োগ করলে ফলাফল ১ থাকে। আর বামের ঘর থেকে যে ১ আমরা 'ধার' নিয়েছি, তা পরবর্তী ধাপে নিচের সংখ্যার সাথে যোগ করে (বা উপরের সংখ্যা থেকে কমিয়ে) সমন্বয় করতে হয়।
উদাহরণ (Worked Example):
বিয়োগ কর: $১০০০_২ - ১_২$
সমাধান:
১ ০ ০ ০
- ১
---------
- ডানের কলাম: ০ থেকে ১ বিয়োগ করা যায় না। বামে সব ০। তাই একদম বামের ১ থেকে ধার নিতে হবে।
- বামের ১ থেকে ধার নিলে সেটি ০ হয়ে যায়। এই ধার ডানের ঘরগুলোতে গড়াতে গড়াতে আসে। মাঝখানের ০ গুলো ১ হয়ে যায় এবং শেষের ০ টি ১০ (দশমিক ২) হয়।
- এখন, ২ - ১ = ১।
- মাঝখানের কলামগুলোতে এখন ১ আছে, নিচে কিছু নেই (মানে ০)। তাই ১ - ০ = ১।
- এভাবে ফলাফল আসে: $১১১_২$।
সহজ কথায়: ১০০০ (৮) - ১ = ১১১ (৭)।
চিহ্নযুক্ত সংখ্যা (Signed Number) ও মেমোরি রেজিস্টার
কম্পিউটারে গাণিতিক কাজের জন্য ধনাত্মক (+) ও ঋণাত্মক (-) উভয় ধরনের সংখ্যার প্রয়োজন হয়। সাধারণ বা 'Unsigned' সংখ্যায় শুধু মান থাকে, কিন্তু 'Signed' বা চিহ্নযুক্ত সংখ্যায় মানের সাথে চিহ্নও থাকে। যেহেতু কম্পিউটার প্লাস বা মাইনাস চিহ্ন বোঝে না, তাই সংখ্যার একটি বিটকে চিহ্নের জন্য বরাদ্দ রাখা হয়।
সংজ্ঞা (Signed Number): কম্পিউটারে ধনাত্মক ও ঋণাত্মক উভয় ধরনের সংখ্যা প্রকাশের জন্য মূল সংখ্যার সাথে একটি অতিরিক্ত চিহ্ন বিট (Sign Bit) যুক্ত করে যে সংখ্যা গঠন করা হয়, তাকে চিহ্নযুক্ত সংখ্যা বা Signed Number বলে।
একটি ৮-বিট রেজিস্টারে (৮টি ঘর বা ফ্লিপ-ফ্লপ) কোনো সংখ্যা রাখলে, একদম বামের বিটটিকে বলা হয় সর্বোচ্চ গুরুত্বের বিট (MSB - Most Significant Bit)। চিহ্নযুক্ত সংখ্যার ক্ষেত্রে এই MSB-কে সাইন বিট (Sign Bit) হিসেবে ব্যবহার করা হয়।
সংজ্ঞা (Sign Bit): রেজিস্টারের সর্বোচ্চ গুরুত্বের বিট বা MSB-কে সাইন বিট বলে। এই বিটটি ০ হলে সংখ্যাটি ধনাত্মক (+) এবং ১ হলে সংখ্যাটি ঋণাত্মক (-) ধরা হয়।
মেমোরি রেজিস্টার
রেজিস্টার হলো সিপিইউ-এর ভেতরের খুব দ্রুতগতির মেমোরি। সচরাচর ৮-বিট, ১৬-বিট, ৩২-বিট বা ৬৪-বিটের রেজিস্টার হয়। আমাদের পাঠ্যক্রমে সাধারণত ৮-বিট রেজিস্টার বা '১ বাইট' নিয়ে আলোচনা করা হয়। ৮-বিট রেজিস্টারে ১ম বিট চিহ্নের জন্য এবং বাকি ৭টি বিট সংখ্যার মানের (Magnitude) জন্য ব্যবহৃত হয়।
পদ্ধতি ১: প্রকৃত মান গঠন (Sign Magnitude Form)
এটি চিহ্নযুক্ত সংখ্যা প্রকাশের সবচেয়ে সরল পদ্ধতি। এতে সংখ্যার প্রকৃত বাইনারি মানের আগে শুধু একটি সাইন বিট বসিয়ে দেওয়া হয়।
গঠন প্রণালী:
১. সংখ্যাটির প্রকৃত বাইনারি মান বের করতে হবে।
২. নির্দিষ্ট রেজিস্টার (যেমন ৮-বিট) অনুযায়ী বামে প্রয়োজনীয় সংখ্যক শূন্য বসিয়ে বিট পূরণ করতে হবে (৭টি বিট)।
৩. সবশেষে একদম বামে সাইন বিট বসাতে হবে (পজিটিভ হলে ০, নেগেটিভ হলে ১)।
উদাহরণ: ৮-বিট রেজিস্টারে $+১৩$ এবং $-১৩$ এর প্রকৃত মান গঠন:
১৩ এর বাইনারি = $১১০১$
৭ বিট ডাটা = $০০১১০১$
- +১৩: সাইন বিট ০, তাই $০$ $০০১১০১$ = $০০০০১১০১$
- -১৩: সাইন বিট ১, তাই $১$ $০০১১০১$ = $১০০০১১০১$
$$Range = -(2^{n-1} - 1) \text{ to } +(2^{n-1} - 1)$$
যেখানে $n$ হলো বিট সংখ্যা।
৮-বিট রেজিস্টারের জন্য এই পদ্ধতিতে সংখ্যার সীমা হলো: $-(2^{7} - 1)$ থেকে $+(2^{7} - 1)$ বা $-127$ থেকে $+127$।
সীমাবদ্ধতা (Limitations):
১. শূন্যের দুটি মান: এই পদ্ধতিতে $+০$ ($০০০০০০০০$) এবং $-০$ ($১০০০০০০০$) নামে দুটি আলাদা বাইনারি মান পাওয়া যায়, যা গাণিতিকভাবে অযৌক্তিক এবং কম্পিউটারের লজিক সার্কিটে জটিলতা সৃষ্টি করে।
২. জটিল সার্কিট: যোগ-বিয়োগের জন্য এই পদ্ধতিতে আলাদা আলাদা সার্কিট এবং জটিল অ্যালগরিদম প্রয়োজন হয়। একারণে আধুনিক কম্পিউটারে এটি ব্যবহার করা হয় না।
পদ্ধতি ২: ১-এর পরিপূরক (1's Complement)
কম্পিউটারের সার্কিট সহজ করার লক্ষ্যে এই পদ্ধতির উদ্ভব। এটি মূলত কোনো বাইনারি সংখ্যার বিটগুলোকে উল্টিয়ে দেওয়ার প্রক্রিয়া।
সংজ্ঞা (1's Complement): কোনো বাইনারি সংখ্যার প্রতিটি বিটকে পূরক করে বা উল্টিয়ে (০-এর স্থলে ১ এবং ১-এর স্থলে ০ বসিয়ে) যে নতুন সংখ্যা পাওয়া যায়, তাকে ওই সংখ্যার ১-এর পরিপূরক বলে।
হার্ডওয়্যারে 'NOT Gate' ব্যবহার করে এটি খুব দ্রুত করা যায়। এটি ২-এর পরিপূরক (যা বর্তমানে সব কম্পিউটারে ব্যবহৃত হয়) তৈরির প্রথম ধাপ হিসেবে অত্যন্ত গুরুত্বপূর্ণ।
উদাহরণ (Worked Example):
$-২২$ সংখ্যাটিকে ১-এর পরিপূরক পদ্ধতিতে ৮-বিট রেজিস্টারে দেখাও।
সমাধান:
ধাপ ১: প্রথমে $+২২$ এর বাইনারি বের করি।
$২২ = ১০১১০_২$
ধাপ ২: ৮-বিট রেজিস্টারে সাজাই (বামে শূন্য দিয়ে)।
$+২২ = ০০১০১১০$
ধাপ ৩: বিটগুলো উল্টে দেই (০ $\rightarrow$ ১, ১ $\rightarrow$ ০)।
১-এর পরিপূরক = $১১০১০০১$
সুতরাং, ১-এর পরিপূরক পদ্ধতিতে $-২২$ হলো $১১০১০০১$।
সীমাবদ্ধতা: প্রকৃত মান গঠনের মতোই, ১-এর পরিপূরক পদ্ধতিতেও শূন্যের দুটি রূপ থাকে ($+০$ এবং $-০$), যা গাণিতিক কাজের জন্য আদর্শ নয়। তবে ২-এর পরিপূরক পদ্ধতিতে এই সমস্যার সমাধান করা হয়েছে (যা আমরা পরবর্তী পাঠে জানব)।
তুলনামূলক আলোচনা ও সারসংক্ষেপ
নিচে একটি ৮-বিট সংখ্যার জন্য বিভিন্ন পদ্ধতির তুলনা দেখানো হলো:
| বৈশিষ্ট্য | প্রকৃত মান (Sign Magnitude) | ১-এর পরিপূরক (1's Complement) |
|---|---|---|
| গঠন | সাইন বিট বাদে বাকি সব ঠিক থাকে | সব বিট উল্টে যায় (ইনভার্স হয়) |
| ধনাত্মক সংখ্যা | একই থাকে (যেমন: $+5 = 00000101$) | একই থাকে (যেমন: $+5 = 00000101$) |
| ঋণাত্মক সংখ্যা | শুধু MSB ১ হয় | সম্পূর্ণ উল্টানো রূপ |
| শূন্য (0) | $+0$ ও $-0$ (দুটি মান) | $+0$ ও $-0$ (দুটি মান) |
সংক্ষিপ্ত সারাংশ (Quick Revision):
- বাইনারি যোগে ১+১=১০ (০ নামে, ১ হাতে থাকে) এবং ১+১+১=১১ (১ নামে, ১ হাতে থাকে)।
- চিহ্নযুক্ত সংখ্যায় রেজিস্টারের একদম বামের বিট (MSB) হলো সাইন বিট। ০ = পজিটিভ, ১ = নেগেটিভ।
- প্রকৃত মান পদ্ধতিতে শুধু সাইন বিট পরিবর্তন করে নেগেটিভ করা হয়, কিন্তু এতে সার্কিট জটিল হয়।
- ১-এর পরিপূরক পদ্ধতিতে সব বিট উল্টে (Invert) দিয়ে নেগেটিভ মান পাওয়া যায়।
- উভয় পদ্ধতিতে 'শূন্য' এর দুটি মান থাকার সমস্যা বিদ্যমান।
পরীক্ষা প্রস্তুতি (Exam Focus)
পরীক্ষার টিপস (Exam Tip):
- এমসিকিউ সতর্কতা: প্রশ্নে যদি বলা থাকে "১-এর পরিপূরক পদ্ধতিতে -৫ কত?", তবে প্রথমে +৫ এর ৮-বিট রূপ লিখবে, তারপর সেটাকে উল্টাবে। সরাসরি ৫ এর বাইনারি লিখে দিও না।
- রেজিস্টার সাইজ: সাধারণত ৮-বিট রেজিস্টার উল্লেখ থাকে। যদি ১৬-বিট বলা হয়, তবে বামে আরও ৮টি শূন্য যোগ করে নিতে হবে।
- সাইন বিট চেক: যেকোনো বাইনারি সংখ্যা দেখে সেটি পজিটিভ না নেগেটিভ বুঝতে হলে শুধু বামের বিটটি দেখবে।
শব্দকোষ (Glossary)
| পরিভাষা | সংজ্ঞা |
|---|---|
| সাইন বিট (Sign Bit) | বাইনারি সংখ্যার সর্ববামে অবস্থিত বিট যা সংখ্যার চিহ্ন (+ বা -) নির্দেশ করে। |
| এমএসবি (MSB) | Most Significant Bit বা সর্বোচ্চ গুরুত্বের বিট, যা সাধারণত সাইন বিট হিসেবে ব্যবহৃত হয়। |
| রেজিস্টার (Register) | সিপিইউ এর অভ্যন্তরে অবস্থিত দ্রুতগতির মেমোরি, যেখানে বিটগুলো সংরক্ষিত থাকে। |
| ১-এর পরিপূরক | বাইনারি সংখ্যার ০ কে ১ এবং ১ কে ০ দ্বারা প্রতিস্থাপন করে প্রাপ্ত সংখ্যা। |
| রেডিক্স পয়েন্ট | বাইনারি সংখ্যায় পূর্ণাংশ ও ভগ্নাংশকে পৃথককারী বিন্দু (দশমিক বিন্দুর মতো)। |