Как заменить буквы на цифры? - C#
Формулировка задачи:
Пользователь вводит с клавиатуры число в 16-ной системе счисления C33,4CCCCC. Как перевести буквы в цифры для дальнейших операций над ними ?
string digit = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Решение задачи: «Как заменить буквы на цифры?»
textual
Листинг программы
static void Main(string[] args) {
Console.Write("Введите число: ");
string number = Console.ReadLine();
Console.Write("Введите основание системы: ");
int b = int.Parse(Console.ReadLine());
Console.WriteLine("{0} = {1}", number, ConvertToInt(number, b));
Console.Read();
}
static int ConvertToInt(string number, int b) {
int retval = 0;
string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (b > 36 || b < 11)
throw new ArgumentOutOfRangeException("Основание системы выходит за допустимые пределы. Должно быть в диапазоне 11 - 36");
for (int i = 0; i < number.Length; i++) {
char digit = number.ToLower()[i];
int pos = digits.ToLower().IndexOf(digit);
if (pos == -1)
throw new ArgumentException("Введённое число содержит недопустимые символы");
retval += pos * (int)Math.Pow(b, i);
}
return retval;
}