public static void Main()
for(int i = 0; i <= 11; i++)
int binNum = Convert.ToInt32(ConvertToBinary(i));
int octNum = Convert.ToInt32(ConvertToOctal(i));
Console.WriteLine("BINARY: " + i + " = " + binNum + " = " + ConvertFromBase(binNum, 2));
Console.WriteLine("OCTAL: " + i + " = " + octNum + " = " + ConvertFromBase(octNum, 8));
Console.WriteLine("HEXADECIMAL 2:" + ConvertFromBase("2", 16));
Console.WriteLine("HEXADECIMAL A:" + ConvertFromBase("A", 16));
Console.WriteLine("HEXADECIMAL F:" + ConvertFromBase("F", 16));
Console.WriteLine("HEXADECIMAL 10:" + ConvertFromBase("10", 16));
Console.WriteLine("HEXADECIMAL 20:" + ConvertFromBase("20", 16));
private static string ConvertToBinary(int num)
StringBuilder binNum = new StringBuilder();
while (num - Math.Pow(2, numBits) >= 0)
if (num - Math.Pow(2, numBits) >= 0)
num = num - (int) Math.Pow(2, numBits);
return binNum.ToString();
private static string ConvertToOctal(int num)
StringBuilder octNum = new StringBuilder();
while(num - Math.Pow(8, numDigits) >= 0)
if (num - Math.Pow(8, numDigits - 1) >= 0)
while (num - (Math.Pow(8, numDigits - 1) * digit) >= 0)
num -= (int) Math.Pow(8, numDigits - 1) * digit;
return octNum.ToString();
private static int ConvertFromBase(int num, int numBase)
while (num / modulizor > 0)
decNum += digit * (int) Math.Pow(numBase, powCount);
decNum += digit * (int) Math.Pow(numBase, powCount);
private static string ConvertFromBase(string num, int numBase)
for (int i = num.Length - 1; i >= 0; i--)
result += digit * (int) Math.Pow(numBase, powCount);
return result.ToString();