using System;
using System.Text;
class BaseConvert
{
public static string ToBase(int n, int baseValue) {
const string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (baseValue < 2 || baseValue > 36)
throw new ArgumentException("Base must be between 2 and 36");
if (n == 0)
return "0";
StringBuilder sb = new StringBuilder();
while (n > 0) {
int remainder = n % baseValue;
sb.Append(digits[remainder]);
n /= baseValue;
}
// Reverse the string
char[] chars = sb.ToString().ToCharArray();
Array.Reverse(chars);
return new string(chars);
}
static void Main()
{
int number = 255;
Console.WriteLine($"{number} in base 2 = {ToBase(number, 2)}");
Console.WriteLine($"{number} in base 8 = {ToBase(number, 8)}");
Console.WriteLine($"{number} in base 16 = {ToBase(number, 16)}");
Console.WriteLine($"{number} in base 36 = {ToBase(number, 36)}");
}
}
/*
run:
255 in base 2 = 11111111
255 in base 8 = 377
255 in base 16 = FF
255 in base 36 = 73
*/