অল ইওর বেস

অল ইওর বেস

কঠিন

ভূমিকা

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

নির্দেশনা

একটি বেসে লেখা অঙ্কের একটি ক্রম, যা একটি সংখ্যাকে বোঝায়, সেটিকে অন্য একটি বেসে সেই একই সংখ্যাকে বোঝায় এমন অঙ্কের ক্রমে রূপান্তর করুন।

Note

রূপান্তরটি নিজে নিজেই লেখার চেষ্টা করুন। রূপান্তরের কাজটি করার জন্য অন্য কিছু ব্যবহার করবেন না।

পজিশনাল নোটেশন সম্পর্কে

পজিশনাল নোটেশনে, b বেসের একটি সংখ্যাকে b-এর ঘাতগুলোর একটি রৈখিক সমন্বয় হিসেবে বোঝা যায়।

সংখ্যা 42, বেস 10-এ, মানে:

(4 × 10¹) + (2 × 10⁰)

সংখ্যা 101010, বেস 2-এ, মানে:

(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)

সংখ্যা 1120, বেস 3-এ, মানে:

(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)

হ্যাঁ। উপরের এই তিনটি সংখ্যাই আসলে একেবারে একই। অভিনন্দন!

রেজিস্টার

রেজিস্টার ব্যবহার টাইপ বিবরণ
$a0 ইনপুট ইন্টিজার ইনপুট ডিজিটের সংখ্যা
$a1 ইনপুট ইন্টিজার ইনপুট ডিজিটের বেস
$a2 ইনপুট ইন্টিজার আউটপুট ডিজিটের বেস
$a3 ইনপুট/আউটপুট অ্যাড্রেস ডিজিট শব্দের অ্যারে, যা ওভাররাইট করা যায়
$v0 আউটপুট ইন্টিজার আউটপুট ডিজিটের সংখ্যা, ইনপুট অবৈধ হলে -1
$t0-9 টেম্পোরারি যেকোনো টেম্পোরারি স্টোরেজের জন্য ব্যবহৃত হয়
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
MIPS Assembly Exercism

অল ইওর বেস শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, MIPS Assembly ট্র্যাকের 70টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।