ডেসিমেল সংখ্যাকে অন্য বেসে (বাইনারি, অক্টাল, হেক্সাডেসিমেল) কনভার্ট করার জন্য স্ট্যাক (Stack) ডেটা স্ট্রাকচার ব্যবহার করা একটি ক্লাসিক অ্যালগরিদম। প্রতিবার বেস দিয়ে ভাগ করে রিমাইন্ডার স্ট্যাকে পুশ করা হয়, তারপর পপ করে ফলাফল পাওয়া যায়।
উদাহরণ: জেনারিক বেস কনভার্টার
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
int n = 45;
int baseNum = 2; // বাইনারির জন্য ২, অক্টালের জন্য ৮, হেক্সার জন্য ১৬
Stack s = new Stack();
do {
int remainder = n % baseNum;
// হেক্সাডেসিমেলের জন্য ১০-১৫ হলে A-F ব্যবহার করুন
s.Push(remainder);
n /= baseNum;
} while (n != 0);
Console.Write("ফলাফল (বেস " + baseNum + "): ");
while (s.Count > 0) {
Console.Write(s.Pop());
}
Console.WriteLine();
}
}
আউটপুট (বাইনারি)
ফলাফল (বেস 2): 101101
বিল্ট-ইন মেথড (আধুনিক পদ্ধতি)
int number = 45; Console.WriteLine(Convert.ToString(number, 2)); // বাইনারি: 101101 Console.WriteLine(Convert.ToString(number, 8)); // অক্টাল: 55 Console.WriteLine(Convert.ToString(number, 16)); // হেক্সা: 2D
সুপারিশ: প্রোডাকশন কোডে Convert.ToString(value, base) ব্যবহার করুন। স্ট্যাক বেসড অ্যালগরিদম শেখার উদ্দেশ্যে ভালো।