বিভিন্ন গাণিতিক সমস্যা সমাধানের ক্ষেত্রে ধনাত্মক ও ঋণাত্মক সংখ্যা ব্যবহার করা হয়। সংখ্যাটি ধনাত্মক নাকি ঋণাত্মক তা বুঝানোর জন্য সাধারণত সংখ্যার পূর্বে চিহ্ন(+ অথবা -) ব্যবহৃত হয়। অর্থাৎ যখন কোন সংখ্যার পূর্বে ধনাত্মক(+) বা ঋণাত্মক(-) চিহ্ন থাকে তখন সেই সংখ্যাকে চিহ্নযুক্ত সংখ্যা বা সাইনড নম্বর বলা হয়।
বাইনারি পদ্ধতিতে চিহ্নযুক্ত সংখ্যা উপস্থাপনের জন্য প্রকৃত মানের পূর্বে একটি অতিরিক্ত বিট যোগ করা হয়। এ অতিরিক্ত বিটকে চিহ্ন বিট বলে। চিহ্ন বিট 0 হলে সংখ্যাটি ধনাত্মক এবং চিহ্নবিট ১ হলে সংখ্যাটিকে ঋণাত্মক ধরা হয়।
চিহ্নযুক্ত সংখ্যার উপস্থাপনাঃ কম্পিউটার সিস্টেমে ঋণাত্মক(-) চিহ্ন যুক্ত সংখ্যা বা ঋণাত্মক সংখ্যা উপস্থাপনার জন্য তিনটি পদ্ধতি আছে। যথাঃ
প্রকৃত মান গঠন (Signed magnitude form)
১ এর পরিপূরক গঠন (1’s Complement form)
২ এর পরিপূরক গঠন (2’s Complement form)
এক্ষেত্রে তিনটি পদ্ধতিতেই ধনাত্মক সংখ্যার উপস্থাপনা একই। অর্থাৎ ধনাত্মক সংখ্যার ক্ষেত্রে চিহ্ন বিট ছাড়া বাকি অংশটি সংখ্যার মান জ্ঞাপন করে। তবে ঋণাত্মক সংখ্যার ক্ষেত্রে উপস্থাপনা ভিন্ন ভিন্ন হয়।
উপরিউক্ত তিনটি পদ্ধতিতে চিহ্ন যুক্ত সংখ্যা উপস্থাপনার জন্য রেজিস্টার সম্পর্কে প্রাথমিক ধারণা থাকতে হবে। রেজিস্টার হলো একগুচ্ছ ফ্লিপ-ফ্লপ এবং গেইটের সমন্বয়ে গঠিত সার্কিট যা অস্থায়ী মেমোরি হিসেবে কাজ করে। এর প্রত্যেকটি ফ্লিপ-ফ্লপ একটি করে বাইনারি বিট সংরক্ষণ করতে পারে। n বিটের একটি রেজিস্টার n বিটের বাইনারি তথ্য ধারণ করতে পারে। অর্থাৎ ৮-বিট রেজিস্টার, ১৬- বিট রেজিস্টার, ৩২-বিট রেজিস্টার ইত্যাদি যথাক্রমে ৮, ১৬, ৩২ বিট তথ্য ধারণ করতে পারে। এই অধ্যায়ের শেষের দিকে রেজিস্টার সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
৮-বিট রেজিস্টারের ক্ষেত্রে সর্বডানের ৭-বিট হল ডেটা বিট এবং সর্ব বামের বিটটি চিহ্ন বিট। একইভাবে ১৬-বিট রেজিস্টারের ক্ষেত্রে সর্বডানের ১৫-বিট হল ডেটা বিট এবং সর্ব বামের বিটটি চিহ্ন বিট। অর্থাৎ n-bit রেজিস্টারের ক্ষেত্রে সর্বডানের n-1 বিট হল ডেটা বিট এবং সর্ব বামের বিটটি চিহ্ন বিট হিসেবে ব্যবহৃত হয়।
কখন কত বিট রেজিস্টার ব্যবহার করতে হবে তা নির্ভর করে প্রদত্ত সংখ্যার উপর। যদি একটি সংখ্যার ডেটা বিট ৭ বিটের বেশি হয় তখন ১৬ রেজিস্টার ব্যবহার করতে হবে এবং ডেটা বিট ১৫ বিটের বেশি হলে ৩২ রেজিস্টার ব্যবহার করতে হবে।
প্রকৃত মান গঠন (Signed magnitude form)
প্রকৃত মান গঠন প্রক্রিয়ায় কোন ধনাত্মক ও ঋণাত্মক সংখ্যা ৮-বিট রেজিস্টারে উপস্থাপনের ক্ষেত্রে রেজিস্টারের সর্বডানের ৭-বিট ডেটা বিট এবং সর্ব বামের বিটটি চিহ্ন বিট হিসেবে ব্যবহৃত হয়। এক্ষেত্রে ধনাত্মক চিহ্নের জন্য চিহ্ন বিট 0 এবং ঋণাত্মক চিহ্নের জন্য চিহ্ন বিট 1। এই প্রক্রিয়ায় +০ এবং -০ এর ভিন্ন ভিন্ন মান পাওয়া যায় যা বাস্তবের সাথে অসামঞ্জস্যপূর্ণ। প্রকৃত মান গঠন সহজ হলেও এর জন্য জটিল বর্তনীর প্রয়োজন হয়।
প্রকৃত মান গঠন প্রক্রিয়ায় +5 এবং -5 কে ৮-বিট রেজিস্টারে উপস্থাপনঃ
এক্ষেত্রে ডেটা বিট ৭-বিটের কম হলে বাকিগুলো ০ দ্বারা পূর্ন করতে হবে।
যেহেতু ৮-বিট রেজিস্টার ব্যবহৃত হয়েছে, তাই ডেটা বিট ৭-বিট। কিন্তু ৫ এর ডেটা বিট ১০১ তিন বিট। তা বাকি গুলো ০ দ্বারা পূর্ন করা হয়েছে।
১ এর পরিপূরক গঠন কী? (1’s Complement form)
কোন বাইনারি সংখ্যার প্রতিটি বিটকে পূরক করে বা উল্টিয়ে যে সংখ্যা পাওয়া যায় তাকে ১ এর পরিপূরক বলা হয়। এই প্রক্রিয়ায় ধনাত্মক সংখ্যার উপস্থাপন প্রকৃত মান গঠনের মতই। অর্থাৎ ধনাত্মক চিহ্নযুক্ত সংখ্যার ক্ষেত্রে ধনাত্মক চিহ্নের জন্য চিহ্ন বিট 0 এবং বাকি ৭-বিট ব্যবহৃত হয় ডেটা বিটের জন্য। ঋণাত্মক চিহ্নযুক্ত সংখ্যার মান নির্ণয়ের জন্য ধনাত্মক চিহ্নযুক্ত সংখ্যার মান নির্ণয় করতে হয়। তারপর চিহ্ন-বিট সহ সবগুলো বিটকে উল্টিয়ে(অর্থাৎ 0 থাকলে ১ এবং ১ থাকলে 0 হয়) ঋণাত্মক চিহ্নযুক্ত সংখ্যার মান নির্নয় করা হয়। এই প্রক্রিয়াতেও +০ এবং -০ এর ভিন্ন ভিন্ন মান পাওয়া যায় যা বাস্তবের সাথে অসামঞ্জস্যপূর্ণ।
১ এর পরিপূরক গঠন প্রক্রিয়ায় +5 এবং -5 কে ৮-বিট রেজিস্টারে উপস্থাপনঃ
এক্ষেত্রেও ডেটা বিট ৭-বিটের কম হলে বাকিগুলো ০ দ্বারা পূর্ন করতে হবে।
২ এর পরিপূরক গঠন কী? (2’s Complement form)
কোন বাইনারি সংখ্যার ১ এর পরিপূরকের সাথে বাইনারি ১ যোগ করলে যে সংখ্যা পাওয়া যায় তাকে ২ এর পরিপূরক বলা হয়।এই প্রক্রিয়াতেও ধনাত্মক সংখ্যার উপস্থাপন প্রকৃত মান গঠনের মতই। অর্থাৎ ধনাত্মক চিহ্নযুক্ত সংখ্যার ক্ষেত্রে ধনাত্মক চিহ্নের জন্য চিহ্ন বিট 0 এবং বাকি ৭-বিট ব্যবহৃত হয় ডেটা বিটের জন্য। ঋণাত্মক চিহ্নযুক্ত সংখ্যার মান নির্ণয়ের জন্য প্রথমে সংখ্যাটির ধনাত্মক সংখ্যার মান নির্ণয় করতে হয়। তারপর ধনাত্মক সংখ্যার মানের ১ এর পরিপূরক করতে হয়। শেষে ১ এর পরিপূরকে প্রাপ্ত মানের সাথে বাইনারি ১ যোগ করতে হয়। ২ এর পরিপূরক গঠনে +০ এবং -০ এর মান একই যা বাস্তবের সাথে সামঞ্জস্যপূর্ণ। এই প্রক্রিয়ার বিভিন্ন সুবিধার কারণে ডিজিটাল ডিভাইসে ব্যপকভাবে ব্যবহৃত হচ্ছে।
২ এর পরিপূরক গঠন প্রক্রিয়ায় +5 এবং -5 কে ৮-বিট রেজিস্টারে উপস্থাপনঃ
এক্ষেত্রেও ডেটা বিট ৭-বিটের কম হলে বাকিগুলো ০ দ্বারা পূর্ন করতে হবে।
"১ ও ২ এর পরিপূরক" বা "দ্বিআক্ষরী বর্গকে" সম্পর্কে আলোচনা করা যাক। এটি একটি গণিতিক নীতি যা সংখ্যাগুলির দ্বারা একটি বৃদ্ধি বা ঘাতকে দর্শানোর জন্য ব্যবহৃত হয়।
১ ও ২ এর পরিপূরক (Complement of 1 and 2):
1. ১ এর পরিপূরক (1's Complement): একটি দ্বিআক্ষরী সংখ্যা সিস্টেমে, একটি সংখ্যার ১ এর পরিপূরক হলো ঐ সংখ্যার সব ডিজিটগুলি পরিবর্তন করে 0 কে 1 তে এবং 1 কে 0 তে। অর্থাৎ, যদি কোন সংখ্যার ডিজিট সম্পূর্ণ সংখ্যাটি বড় 0 থাকে, তাহলে সেই ডিজিট কে 0 তে পরিবর্তন করতে হবে এবং যদি ডিজিটটি 0 থাকে, তাহলে সেই ডিজিট কে 1 তে পরিবর্তন করতে হবে।
উদাহরণঃ ১০১০ (দ্বিআক্ষরী) এর ১ এর পরিপূরক হলো ০১০১
2. ২ এর পরিপূরক (2's Complement): একটি দ্বিআক্ষরী সংখ্যা সিস্টেমে, একটি সংখ্যার ২ এর পরিপূরক হলো ঐ সংখ্যার 1 এর পরিপূরক এবং তাতে 1 যোগ করতে হবে। অর্থাৎ, সংখ্যাটির ১ এর পরিপূরক বের করে এবং সেই ফলাফলে 1 যোগ করতে হবে।
উদাহরণঃ ১০১০ (দ্বিআক্ষরী) এর ২ এর পরিপূরক হলো ০১১০
উদাহরণ: ধরা যাক, আমরা একটি ৪-বিট দ্বিআক্ষরী সংখ্যা সিস্টেম ব্যবহার করছি। আমরা একটি সংখ্যা ১০১০ (দ্বিআক্ষরী) বিবেচনা করব।
1's Complement of ১০১০: ০১০১ 2's Complement of ১০১০: ০১১০
এই উদাহরণ সাহায্য করতে আমরা যেভাবে দ্বিআক্ষরী সংখ্যা এর পরিপূরক বের করতে পারি তা দেখাচ্ছে।
Comments