How to convert a number to any base in C#

1 Answer

0 votes
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

*/

 



answered Feb 21 by avibootz
...