সংখ্যা পদ্ধতির রূপান্তরঃ বাইনারি থেকে হেক্সাডেসিমাল ও হেক্সাডেসিমাল থেকে বাইনারি

বাইনারি থেকে হেক্সাডেসিমালঃ
গত পর্বের লেকচার যদি তুমি বুঝে থাক, তাহলে এ পর্ব বুঝতে তোমার অনেক সহজ হবে। আমরা জানি যে, বাইনারি সংখ্যার বেজ হচ্ছে ২। ২০ = ১, ২১ = ২, ২২ = ৪, ২৩ = ৮। হেক্সাডেসিমাল সংখ্যায় ব্যবহৃত ডিজিট হল ষোলটি । ০, ১, ২, ৩, ৪, ৫, ৬, ৭, ৮, ৯, A, B, C, D, E, F. আর এই প্রতিটি ডিজিট তার ইকোইভিলেন্ট চার বিটের একটি বাইনারি নাম্বারকে রিপ্রেজেন্ট করে।

গত পর্বে একটা চার্ট দেখিয়েছিলাম। এ পর্বেও ওই রকমই একটা চার্ট পাশের চিত্রে দেখ। লক্ষ্য কর, বাম পাশে নীল কালি দিয়ে নিচে নিচে ০ থেকে F পর্যন্ত ষোলটি হেক্সাডেসিমাল নাম্বার লিখলাম। এবার এই নাম্বারগুলোর বাইনারি মান বের করব। কিভাবে করব এই কাজটা? উপরে বলেছিলাম প্রতিটি ডিজিট তার ইকোইভিলেন্ট চার বিটের একটি নাম্বারকে রিপ্রেজেন্ট করে। উপরে লাল কালি দিয়ে চারটি সংখ্যা লিখেছি। ১, ২, ৪ আর ৮। এখানে ১ মানে ২০, ২ মানে ২১, ৪ মানে ২২, ৮ মানে ২৩। যেহেতু চার বিটের একটি নাম্বারকে রিপ্রেজেন্ট করে তাই চারটি মান নিয়েছি।

তো মানগুলো (চার ডিজিট) এখানে কিভাবে বসালাম? দেখ ৫ এর জন্য লিখেছি ০১০১। লক্ষ্য কর, আমরা যদি ৪ আর ১ যোগ করি তাহলে পাচ্ছি ৫। যেহেতু ৪ আর ১ এই দুইটা সংখ্যা যোগ করে ৫ পেয়েছি। তাই ৮ এর বরাবর ০ লিখেছি, ৪ এর বরাবর ১ লিখেছি, তারপর ২ এর বরাবর ০ আর সবশেষে ১ এর বরাবর লিখেছি ১। তারপর দেখ D মানে ১৩ এর জন্য লিখেছি ১১০১। ৮, ৪ আর ১ যোগ করলে হয় ১৩। যোগের জন্য যেহেতু এখানে ৮, ৪ আর ১ কে ব্যবহার করেছি তাই ৮ এর নিচে ১, ৪ এর নিচে ১, ২ এর নিচে ০ আর ১ এর নিচে ১ লিখেছি।

অর্থাৎ, এখানে যে কাজটা করেছি তা হল এই ০ থেকে F(১৫) পর্যন্ত সংখ্যাগুলোর জন্য এই ১, ২, ৪ আর ৮ এর মধ্যে যে যে সংখ্যা যোগের কাজে ব্যবহৃত হয়েছে তার নিচে ১, আর যেসব ব্যবহৃত হয় নাই তার নিচে ০ লিখেছি। এভাবেই আমরা এ ষোলটি হেক্সাডেসিমাল ডিজিটের জন্য তার সমতুল্য চার বিটের বাইনারি মান পেলাম।

তো এবার উদাহরণ হিসেবে (০১১১১০১১)২ এই বাইনারি সংখ্যাটিকে হেক্সাডেসিমালে রূপান্তর করব। যেহেতু একটি হেক্সাডেসিমাল সংখ্যা তার সমতুল্য চার বিট বাইনারি মানের সমান। তাই বাইনারি সংখ্যাকে যখন হেক্সাডেসিমাল সংখ্যায় রূপান্তর করব তখন পূর্ণ সংখ্যার জন্য ডান দিক থেকে বাম দিকে এবং ভগ্নাংশ সংখ্যার জন্য বাম দিক থেকে ডান দিকে প্রতি চার বিট একত্রে নিয়ে ছোট ছোট ভাগ করতে হবে। তারপর প্রতিটি ভাগের বাইনারি মান লিখতে হবে। আর প্রতিটি ভাগের বাইনারি মানসমূহ সাজালে হেক্সাডেসিমাল সংখ্যা পাওয়া যাবে।

এখানে, ডান দিক থেকে প্রথম চারটি বিট ১০১১ কে আলাদা করলাম। তারপর বাকি চার বিটকে কে আলাদা করলাম। এবার উপরের চার্ট অনুযায়ী অমরা জানি ১০১১ মানে হল B(১১), আর ০১১১ মানে ৭। এভাবেই পেয়ে গেলাম (০১১১১০১১)২ এর হেক্সাডেসিমাল মান (৭B)১৬। পরীক্ষার সময় আলাদা করে রাফ করে উপরের চার্টটি তৈরী করলে উত্তর করতে সুবিধা হবে।

আরো একটি উদাহরণ দেখি, (১০১০১১১০.০১০১১১০১)২সংখ্যাটিকে অক্টালে রূপান্তর করব।
এখানেও একই ভাবে পূর্ণ সংখ্যার ক্ষেত্রে সংখ্যার ডান থেকে বাম দিকে চারটি চারটি করে বিট আলাদা করে তার হেক্সাডেসিমাল মান বসানো হয়েছে। আর ভগ্নাংশের ক্ষেত্রে সংখ্যার বাম থেকে ডানে চারটি চারটি করে বিট আলাদা করে তার হেক্সাডেসিমাল মান বসানো হয়েছে।


এখন কথা হল ভাইয়া, তখন যেমন আট বিট ছিল বলে চার বিট চার বিট করে আলাদা করেছেন। যদি আট বিট না হয়ে সাত বিট হত কিংবা পাঁচ বিট হত, তাহলে কি করতে হত? হ্যাঁ, পাশের চিত্রের উদাহরণটি দেখ। এক্ষেত্রে, পূর্ণ সংখ্যার ক্ষেত্রে বামদিকে চার বিট বানাতে গিয়ে যতগুলা ঘর খালি থাকে, ততগুলা শূন্য বসিয়ে কাজ করতে হয়। আর ভগ্নাংশের জন্য, ওই সংখ্যার ডানে একই ভাবে শূণ্য বসাতে হয়। আশা করি বিষয়টি সবাই বুঝতে পেরেছ।

হেক্সাডেসিমাল থেকে বাইনারিঃ
হেক্সাডেসিমাল থেকে বাইনারিতে রূপান্তর করতে হলেও উপরের চার্টটি আমাদের কাজে লাগবে। তোমরা অনেকে নিশ্চই বুঝে গেছ আমাদের এখন কি করতে হবে। দেখ, উপরের ওই চার্টটি থেকে ত আমরা জানিই ০ থেকে F(১৫) পর্যন্ত এই ষোলটি সংখ্যার বাইনারি মান কত। এবার সে চার্ট ধরে মান বসিয়ে দিলেই ত উত্তর পেয়ে যাব।

পাশের চিত্রের উদাহরণটি লক্ষ্য কর, (A০৯.E২)১৬  কে বাইনারিতে রূপান্তর করতে হবে। হেক্সাডেসিমাল ডিজিট A এর বাইনারি মান হল ১০১০, ০ এর বাইনারি মান হল ০০০০, ৯ এর বাইনারি মান হল ১০০১, E এর বাইনারি মান হল ১১১০, ২ এর বাইনারি মান হল ০০১০। এবার এ মানগুলো একসাথে বসিয়ে পেয়ে গেলাম (A০৯.E২)১৬ এর বাইনারি মান।

আরো দুইটা উদাহরণ দেখি। (১২A)১৬ এবং (AB.৭)১৬ কে বাইনারিতে রূপান্তর করব।
(১২A)১৬
= (০০০১০০১০১০১০)২

(AB.৭)১৬
= (১০১০১০১১.০১১১)২