সংখ্যা পদ্ধতি (Number System)
সাইফুজ্জামান খালেদ
কোনো কিছু গণনা করার জন্য কতিপয় সাংকেতিক চিহ্ণ ব্যবহার করে সংখ্যা লেখা বা প্রকাশ করার পদ্ধতিই সংখ্যা পদ্ধতি।
অঙ্ক (Digit)
কোনো সংখ্যা পদ্ধতিতে সংখ্যাগুলো লেখা বা প্রকাশ করার জন্য যে সাংকেতিক চিহ্ণ বা প্রতীক ব্যবহার করা হয় সে প্রতীকগুলোকে বলা হয় অঙ্ক। অর্থাৎ সংখ্যা তৈরির ক্ষুদ্রতম একক হচ্ছে অঙ্ক।
সংখ্যা (Number)
এক বা একাধিক অঙ্ক পাশাপাশি বসে সংখ্যা তৈরি করে। সংখ্যা এক অঙ্কের হতে পারে, আবার একাধিক অঙ্কেরও হতে পারে। যেমন ৭৮ একটি সংখ্যা। এটিতে ৭ ও ৮ এ দুটি অঙ্ক আছে।
ভিত্তি (Base)
কোনো সংখ্যা পদ্ধতির ভিত্তি বলতে ঐ সংখ্যা পদ্ধতিতে ব্যবহৃত মোট অঙ্ক বা প্রতীকসমূহের সংখ্যাকে বুঝায়।
সংখ্যা পদ্ধতির রূপান্তর
Type 1: দশমিক সংখ্যাকে বাইনারি সংখ্যায় রূপান্তর
দশমিক সংখ্যাকে বাইনারি সংখ্যায় রূপান্তর করতে গেলে প্রথম দেখতে হবে সংখ্যাটি কি পূর্ণ সংখ্যা (integer Number), নাকি ভগ্নাংশ (Float Number), নাকি মিশ্র সংখ্যা (Mixed Number)। যদি পূর্ণ সংখ্যা হয় তবে Type 1 : A –এতে বর্ণিত উপায়ে দশমিক সংখ্যাটিকে বাইনারিতে রূপান্তর করতে হবে। আর যদি ভগ্নাংশ হয়ে তবে Type 1 : B অনুসরণ করতে হবে। আর যদি মিশ্র সংখ্যা হয় সে ক্ষেত্রে আমরা Type 1 : C –তে বর্ণিত ধাপগুলো অনুসরণ করে দশমিক সংখ্যাটিকে বাইনারিতে রূপান্তর করতে পারি।

Type 1 : A (দশমিক পূর্ণ সংখ্যাকে অন্য সংখ্যা পদ্ধতিতে রূপান্তর)
- প্রথমে Decimal পূর্ণ সংখ্যাটি নিতে হবে।
- যে সংখ্যা পদ্ধতিতে রূপান্তর করতে হবে তার ভিত্তি বা Base (যেমন বাইনারি হলে 2, অক্টাল হলে 8, হেক্সাডেসিমেল হলে 16) দিয়ে সংখ্যাটিকে ভাগ করতে হবে।
- ভাগশেষটিকে আলাদা করে নিয়ে ভাগফলকে আবার ভিত্তি দিয়ে ভাগ করতে হবে। এভাবে যতক্ষণ না পর্যন্ত ভাগফল ০ (শূন্য) না হচ্ছে ততক্ষণ পর্যন্ত এ প্রক্রিয়া চালিয়ে যেতে হবে।
- শূন্য হয়ে গেলে ভাগশেষগুলো নিতে হবে। এই ক্ষেত্রে শেষ ভাগশেষটি প্রথমে (MSB) এবং প্রথম ভাগশেষটি একদম শেষে (LSB) হবে।

Type 1 : B (দশমিক ভগ্নাংশকে অন্য সংখ্যা পদ্ধতিতে রূপান্তর)
- প্রথমে Decimal ভগ্নাংশটি নিতে হবে।
- যে সংখ্যা পদ্ধতিতে রূপান্তর করতে হবে তার ভিত্তি বা Base দিয়ে সংখ্যাটিকে গুণ করতে হবে।
- গুণ করে প্রাপ্ত গুণফলের পূর্ণাংশটিকে (Radix Point-এর বাম পাশের অঙ্কগুলো) সংরক্ষণ করতে হবে। যদি পূর্ণাংশ না থাকে তবে ০ (শূন্য) সংরক্ষণ করতে হবে।
- এরপর প্রাপ্ত গুণফলের শুধুমাত্র ভগ্নাংশটিকে (Radix Point-এর ডান পাশের অঙ্কগুলো) কাঙ্ক্ষিত সংখ্যা পদ্ধতির বেস দিয়ে গুণ করতে হবে এবং প্রাপ্ত গুণফলের পূর্ণাংশটিকে সংরক্ষণ করতে হবে।
- এভাবে প্রাপ্ত ভগ্নাংশের পুনঃপুন গুণ চালিয়ে যেতে হবে যতক্ষণ পর্যন্ত না সম্পূর্ণ ভগ্নাংশটি ০ (শূন্য)-তে পরিণত না হয়।
- শূন্য হয়ে গেলে সংরক্ষিত পূর্ণাংশগুলো শূন্য বসিয়ে এবং এর পর Radix Point বসিয়ে একটি পর একটি বসিয়ে দিতে হবে। এই ক্ষেত্রে সংরক্ষিত প্রথম পূর্ণাংশটি প্রথমে (MSB) এবং শেষ সংরক্ষিত পূর্ণাংশটি একদম শেষে (LSB) হবে।

Type 1 : C (মিশ্র দশমিক ভগ্নাংশকে অন্য সংখ্যা পদ্ধতিতে রূপান্তর)
- প্রথমে মিশ্র Decimal সংখাটির পূর্ণাংশ এবং ভগ্নাংশকে আলাদা করে নিতে হবে।
- পূর্ণাংশকে Type 1:A এবং ভগ্নাংশকে Type 1:B তে বর্ণিত নিয়মে বাইনারি সংখ্যায় আলাদা আলাদভাবে রূপান্তর করে নিতে হবে।
- এর পর প্রাপ্ত মানগুলো পাশাপাশি বসিয়ে দিলেই আমরা প্রদত্ত মিশ্র দশমিক সংখ্যাটির সমতুল্য বাইনারি মান পেয়ে যাব।

Type 2: (অন্য সংখ্যা-পদ্ধতি হতে দশমিকসংখ্যা-পদ্ধতিতে রূপান্তর)
- প্রথমে প্রদত্ত সংখ্যাটির অঙ্কগুলোর স্থানীয় মান বের করে নিতে হবে। স্থানীয় মান বের করার জন্য পূর্ণাংশের ক্ষেত্রে (Radix Point-এর বাম পাশের অঙ্ক) স্থানীয় মান ০ (শূন্য) থেকে শুরু হবে এবং ডান দিক থেকে বামে (LSB থেকে শুরু করে MSB পর্যন্ত) এক এক করে বাড়বে। ভগ্নাংশের ক্ষেত্রে স্থানীয় মান -1 থেকে শুরু হয়ে বাম দিক থেকে ডান দিকে (MSB থেকে শুরু করে LSB পর্যন্ত) এক এক করে কমবে ।
- এবার সংখ্যাটির অঙ্কগুলোকে যে সংখ্যা-পদ্ধতিতে আছে তার ভিত্তি বা Base (যেমন বাইনারি হলে 2, অক্টাল হলে 8, হেক্সাডেসিমেল হলে 16)দিয়ে গুণ করতে হবে। গুণ করার সময় আগের ধাপে নির্ণয় করা অঙ্কগুলোর স্থানীয় মানগুলোকে ভিত্তির ঘাত বা শক্তি (power) হিসাবে ব্যবহার করতে হবে।
- তারপর গুণফলগুলোর যোগফল নির্ণয় করতে হবে এবং সেই যোগফলই হবে প্রদত্ত সংখ্যাটির সমতুল্য ডেসিম্যাল বা দশমিক মান।

Type 3: (বাইনারি হতে অক্টাল/হেক্সা-ডেসিম্যালেরূপান্তর)
- বাইনারি সংখ্যা পদ্ধতি হতে অক্টাল বা হেক্সাডেসিম্যাল পদ্ধতিতে নিতে হলে প্রথমে সংখ্যাটির পূর্ণাংশ এবং ভগ্নাংশের অঙ্কগুলোকে আলাদা আলাদাভাবে গ্রুপে ভাগ করে নিতে হবে। অক্টালে রূপান্ত করার জন্য ৩ অঙ্কের গ্রুপ এবং হেক্সাডেসিম্যালে রূপান্তরের জন্য ৪ অঙ্কের গ্রুপে ভাগ করতে হবে। পূর্ণাংশের ক্ষেত্রে ডান দিক থেকে বাম দিকে (LSB থেকে শুরু করে MSB পর্যন্ত) এবং ভগ্নাংশের ক্ষেত্রে বাম দিক থেকে ডান দিকে (MSB থেকে শুরু করে LSB পর্যন্ত) ৩ বা ৪ অঙ্কের গ্রুপে বিভক্ত করে নিতে হবে। কোনো গ্রুপের ক্ষেত্রে অঙ্ক কম পড়লে (অর্থাৎ অক্টালের ক্ষেত্রে ৩ এবং হেক্সাডেসিম্যালের ক্ষেত্রে ৪ অঙ্ক) পূর্ণাংশের ক্ষেত্রে বামে এবং ভগ্নাংশের ক্ষেত্রে ডানে প্রয়োজন মতো শূন্য বসিয়ে গ্রুপ সম্পূর্ণ করতে হবে।
- এবার প্রতিটি গ্রুপকে আলাদা আলাদাভাবে অক্টাল বা হেক্সাডেসিম্যাল অঙ্কে রূপান্তর করে নিয়ে পাশাপাশি বসিয়ে দিলে প্রদত্ত বাইনারি সংখাটির সমতুল্যা অক্টাল বা হেক্সাডেসিম্যাল মান পাওয়া যাবে। এ ক্ষেত্রে পূর্ণাংশ ও ভগ্নাংশের মাঝখানে আগের মতোই Radix Point বসাতে হবে।

Type 4: (অক্টাল/হেক্সা-ডেসিম্যাল হতে বাইনারিতে রূপান্তর)
- প্রদত্ত সংখ্যাটির অঙ্কগুলোকে অক্টালের ক্ষেত্রে ৩ বিট সমতুল্য এবং হেক্সাডেসিম্যালের ক্ষেত্রে ৪ বিট সমতুল্য বাইনারিতে রূপান্তর করে নিতে হবে।
- এরপর বাইনারি মানগুলো পাশাপাশি বসিয়ে দিলে প্রদত্ত অক্টাল/হেক্সাডেসিম্যাল সংখ্যার সমতুল্য বাইনারি মান পাওয়া যাবে। এক্ষেত্রে আগের মতোই পূর্ণাংশ ও ভগ্নাংশের মাঝখানে Radix Point বসাতে হবে। পূর্ণাংশের একেবারে বামদিকের এবং ভগ্নাংশের একেবারে ডানদিকের শূন্যগুলো ইচ্ছে করলে বাদ দেওয়া যেতে পারে।

Type 5: (অক্টাল ও হেক্সা-ডেসিম্যাল সংখ্যা-পদ্ধতির মধ্যে পারস্পরিক রূপান্তর)
- Type 4-এ বর্ণিত প্রক্রিয়ায় প্রথমে প্রদত্ত অক্টাল/হেক্সা-ডেসিম্যাল সংখ্যাটিকে বাইনারিতে রূপান্তর করে নিতে হবে।
- এরপর প্রাপ্ত বাইনারি সংখ্যাটিকে Type 3-এ বর্ণিত প্রক্রিয়ায় প্রয়োজন মতো অক্টাল বা হেক্সা-ডেসিম্যালে রূপান্তর করে নিতে হবে।
1’s Complement (১-এর পরিপূরক পদ্ধতি)
১-এর পরিপূরক বের করার নিয়ম:
- যে ঋণাত্মক সংখ্যাটির ১-এর পরিপূরক বের করতে হবে সে সংখ্যাটির ধনাত্মক সমতূল্য বাইনারি সংখ্যা বের করতে হবে।
- এবার প্রাপ্ত বাইনারি সংখ্যাটির প্রতিটি অঙ্ক বা Bit কে উল্টিয়ে দিলে (অর্থাৎ ১ থাকলে ০ হবে, ০ থাকে ১ হবে) আমরা সংখ্যাটির কাঙ্ক্ষিত ১-এর পরিপূরক পেয়ে যাব।

মনে করি আমরা ১-এর পরিপূরক পদ্ধতিতে -5 এর মান বের করবো। তাহলে আমাদের প্রথম ধাপ হচ্ছে +5 এর সমতুল্য বাইনারি সংখ্যাটি বের করা। আমরা জানি +5 এর বাইনারি সমতুল্য মান হচ্ছে 101. আমরা এই কাজে সাধারণত 8-বিট রেজিস্টার ব্যবহার করি। তাই সংখ্যাটির ডানে 5টি 0 (শূন্য) বসিয়ে একেও 8 বিটে উন্নীত করতে হবে। তাহলে সংখ্যাটি দাঁড়ায় 00000101। এবার প্রাপ্ত সংখ্যাটির প্রতিটি বিটকে উল্টিয়ে দিলে আমরা ১-এর পরিপূরক পদ্ধতিতে 5 এর কপ্লিমেন্ট অর্থাৎ -5 এর মান পেয়ে যাব।
2’s Complement (২-এর পরিপূরক পদ্ধতি)
সংখ্যাটির অঙ্কগুলোকে অক্টালের
- যে ঋণাত্মক সংখ্যাটির ২-এর পরিপূরক বের করতে হবে সে সংখ্যাটির ধনাত্মক সমতূল্য বাইনারি সংখ্যা বের করতে হবে।
- এবার প্রাপ্ত বাইনারি সংখ্যাটির প্রতিটি অঙ্ক বা Bit কে উল্টিয়ে দিলে (অর্থাৎ ১ থাকলে ০ হবে, ০ থাকে ১ হবে) আমরা সংখ্যাটির কাঙ্ক্ষিত ১-এর পরিপূরক পেয়ে যাব।
- এরপর প্রাপ্ত ১-এর পরিপূরক এর সাথে ১ যোগ করলে প্রদত্ত সংখ্যাটির কাঙ্ক্ষিত ২-এর পরিপূরক পেয়ে যাব।
মনে করি আমরা ২-এর পরিপূরক পদ্ধতিতে -5 এর মান বের করবো। তাহলে আমাদের প্রথম ধাপ হচ্ছে পূর্বের উদাহরণে বর্ণিত উপায়ে +5 এর 1’s Complement বের করা। এর পর উক্ত মানের সাথে 1 যোগ করলে যে নতুন বাইনারি সংখ্যাটি পাবো তাই হচ্ছে ২-এর পরিপূরক পদ্ধতিতে 5 এর কপ্লিমেন্ট বা -5 এর মান।

পরিপূরক পদ্ধতিতে যোগ-বিয়োগ
পরিপূরক পদ্ধতিতে যোগ বিয়োগ করার সময় ধনাত্মক সংখ্যার প্রকৃত মান ব্যবহার করা হয়, কিন্তু ঋণাত্মক সংখ্যার পরিপূরক মান ব্যবহার করা হয়। এর পর সংখ্যা দুটোকে যোগ করা হয়।
মনে রাখা দরকার যে পরিপূরক পদ্ধতিতে বিয়োগ করার প্রয়োজন হয় না কারণ গাণিতিক রাশি বা বাক্যটিকে সবসময় এমনভাবে প্রকাশ করে নিতে হয় যেন মাঝখানের Operator টি অবশ্যই যোগ হয়। এরপর যদি কোনো Operand-এর মান ঋণাত্মক হয় তবে সে সংখ্যাটির পরিপূরক মান ব্যবহার করতে হবে।
যেমন বলা হল +7 থেকে +5 বিয়োগ কর। তাহলে গাণিতিক এক্সপ্রেশনটি হবে:
7 – 5
এখানে মাঝখানের Operator টি হচ্ছে – (বিয়োগ)। কিন্তু এটাকে আমরা যদি এভাবে লিখি তাহলে মাঝখানের Operator টি (+) যোগ হয়ে যায়।
(+7) + (-5)
এখন -5 এর পরিপূরক মান ব্যবহার করে সংখ্যা দুটোকে যোগ করে নিতে হবে।
| প্রদত্ত যোগ / বিয়োগ | স্বাভাবিক গাণিতিক রাশি | সাজিয়ে লেখার পর গাণিতিক রাশি |
| +5 এর সাথে +6 বিয়োগ কর | 5 – 6 | 5 + (-6) |
| +8 থেকে -6 বিয়োগ কর | 8 – (-6) | 8 + 6 |
| -5 এর সাথে +6 যোগ কর | (-5) + 6 | (-5) + 6 |
| -5 থেকে -6 বিয়োগ কর | (-5) – (-6) | (-5) + 6 |
সাজিয়ে লেখার পর বাইনারির স্বাভাবিক নিয়মে আমরা খুব সহজে যোগ করতে পারি। শুধুমাত্র ঋণাত্মক সংখ্যার ক্ষেত্রে এর প্রকৃত মান ব্যবহার না করে পরিপূরক মান ব্যবহার করতে হবে।
১-এর পরিপূরক এবং ২-এর পরিপূরক পদ্ধতিতে যোগ করার নিয়ম প্রায় একই। ১-এর পরিপূরক পদ্ধতি ঋণাত্মক সংখ্যার ১-এর পরিপূরক মান এবং ২-এর পরিপূরক পদ্ধতি ঋণাত্মক সংখ্যার ২-এর পরিপূরক মান ব্যবহার করা হয়। শুধুমাত্র পার্থক্যটি হয় যখন চূড়ান্ত যোগফলে carry হয়। তখন 8-bit রেজিস্টারের ক্ষেত্রে যোগফল হয় 9 বিটের। এই অতিরিক্ত ক্যারি বিটকে বলা হয় Carry Bit বা Overflow Bit. ১-এর পরিপূরক পদ্ধতিতে Carry Bit-কে বাকি 8 বিটের সাথে আবার যোগ করে দেওয়া হয়। কিন্তু ২-এর পরিপূরক পদ্ধতিতে Carry Bit-কে যোগ করতে হয় না।
Note: শুধুমাত্র ঋণাত্মক সংখ্যার পরিপূরক মান বের করতে হয়। ধনাত্মক সংখ্যার পরিপূরক মান বের করতে হয় না।
পরিপূরক পদ্ধতিতে যোগ-বিয়োগ করার নিয়ম:
- প্রথমে গাণিতিক রাশিটি নিতে হবে।
- প্রদত্ত গাণিতিক রাশিটিকে প্রয়োজনাসুরে সাজিয়ে লিখতে হবে।
- এবার স্বাভাবিক বাইনারির নিয়মে যোগ করতে হবে।
ধনাত্মক সংখ্যার ক্ষেত্রে প্রকৃত মান এবং ঋণাত্মক সংখ্যার ক্ষেত্রে পরিপূরক মান ব্যবহার করতে হবে।
- যোগফলে যদি 9 বিটের হয় তবে ১-এর পরিপূরক পদ্ধতিতে Overflow Bit-কে বাকি 8 বিটের সাথে আবার যোগ করে দিতে হবে। কিন্তু ২-এর পরিপূরক পদ্ধতিতে Overflow Bit-কে যোগ করতে হবে না; Overflow Bit-কে বাদ দিয়ে বাকি 8 বিটই হবে ফলাফল।
উদাহরণ: পরিপূরক পদ্ধতি +7 এর সাথে +5 যোগ কর।
তার মানে গাণিতিক রাশিটি হচ্ছে –
7 – 5
আমাদের প্রথম কাজটি হবে গাণিতিক রাশিটিকে সাজিয়ে লেখা। সাজিয়ে লিখলে গাণিতিক রাশিটি দাঁড়ায়
(-5) + (+7)
Note: সাজিয়ে লেখার সময় ঋণাত্মক সংখ্যাটিকে আগে লিখলে যোগ করতে সুবিধে হবে।
সৃজনশীল নমুনা প্রশ্ন
০১. প্রথম দিকে কিছু অসুবিধা হলেও বর্তমানে আইসিটি ক্লাস ছাত্রছাত্রীদের কাছে খুব উপভোগ্য। শ্রেণি শিক্ষক মিজান ও সুমনকে তাদের বয়স বোর্ডে লিখতে বললে তার লিখল (25)8 ও (10100)2। শিক্ষকও মজা করে বললেন, আমার বয়স তোমাদের দুই জনের বয়সের যোগফল অপেক্ষা (11)10 বছর বেশি।
ক. সংখ্যা পদ্ধতি কী?
খ. পৃথিবীর সকল ভাষাকে কোন কোডের মাধ্যমে অন্তর্ভুক্ত করা সম্ভব – ব্যাখ্যা কর।
গ. উদ্দীপকের মিজান ও সুমনের বয়সের যোগফল দশমিক পদ্ধতিতে নির্ণয় কর।
ঘ. তোমার বাবার বয়স পঞ্চাশ বছর হলে, তোমার বাবা ও উদ্দীপকের শিক্ষক, কে বয়সে বড় – বিশ্লেষণ করে দেখাও।
০২. মামুন ও পান্না সংখ্যা পদ্ধতি নিয়ে কথা বলছে। মামুন বলছে কম্পিউটার আসলে একটি যন্ত্র যেটি দশমিক সংখ্যা পদ্ধতি চেনে না। সে শুধু চেনে বাইনারি সংখ্যা আর বাইনারি সংখ্যার ডিজিট হলে ০ এবং ১। পান্না বলল এ দুটি প্রতীক দিয়ে কি যে কোনো সংখ্যা লেখা যায়? তাহলে 405 কে বাইনারিতে কীভাবে লেখা যাবে।
ক. সংখ্যা পদ্ধতির ভিত্তি বলতে কী বুঝ?
খ. বিভিন্ন প্রকার সংখ্যা পদ্ধতি উল্লেখ কর।
গ. পান্নার বলা সংখ্যাটিকে বাইনারিতে প্রকাশ কর।
ঘ. কম্পিউটার ডিজাইনে উদ্দীপকে বর্ণিত সংখ্যা পদ্ধতিটি ব্যবহার করার কারণ বিশ্লেষণ কর।
০৩. সাদীয়া (১২৩.৪)৮ টাকায় (৩২)১০ টি লিচু ক্রয় করল। তার মধ্যে (১৪)১০ টি লিচু জেরিন খেয়ে ফেলল।
ক. ঋণাত্মক সংখ্যার প্রচলন শুরু হয় কবে?
খ. বিসিডি ও বাইনারি কোড এক নয় – ব্যাখ্যা কর।
গ. উদ্দীপকের লিচুর ক্রয়মূল্যকে দশমিকে প্রকাশ কর।
ঘ. উদ্দীপকের আলোকে ২-এর পরিপূরক পদ্ধতিতে অবশিষ্ট লিচুর সংখ্যা নির্ণয় কর।
০৪. আধুনিক কম্পিউটারের গাণিতিক বর্তনিতে ২-এর পরিপূরক পদ্ধতি ব্যবহার করা হয়। ২-এর পরিপূরক গঠনে ঋণাত্মক সংখ্যা প্রকাশ করার জন্য প্রথম চিহ্ণ বিট ১ হবে বলে রহিম করিমকে জানালো। তখন করিম বলল তাহলে কি ধনাত্মক সংখ্যা প্রকাশ করার প্রথমে চিহ্ণ ০ হবে?
ক. ১ এর পরিপূরক কত?
খ. বাইনারি পদ্ধতিতে চিহ্ণ বোঝানোর জন্য কী ব্যবহার করা হয়? ব্যাখ্যা কর।
গ. উদ্দীপকের আলোকে উপরোক্ত পরিপূরক পদ্ধতিতে (25)10 ও (13)10 যোগ কর।
ঘ. উদ্দীপকের পরিপূরক গঠনের গুরুত্ব বিশ্লেষণ কর।
০৫. (425)10 (425)8
ক. র্যাডিক্স পয়েন্ট কী?
খ. দশমিক ও অক্ট্যাল সংখ্যা পদ্ধতির মধ্যে প্রধান পার্থক্য বুঝিয়ে লেখ।
গ. প্রথম সংখ্যাটিকে অক্ট্যালে রূপান্তর কর।
ঘ. দ্বিতীয় সংখ্যাটিকে দশমিকে রূপান্তর করে প্রথম সংখ্যার সাথে যোগ করে যোগফলকে বাইনারিতে প্রকাশ কর।