В действительности вы не конвертируете в базу 10. Вы конвертируете ее в числовой тип данных вместо строкового представления. Во всяком случае, вы конвертируете его в двоичный код :) Стоит проводить различие между «целым числом» (которое по сути не имеет основы) и «текстовым представлением целого числа» (которое имеет).
Кажется, это разумный путь, ИМО. Тем не менее, ваши процедуры преобразования, безусловно, не особенно эффективны. Я бы разделил ваш код на методы Parse
и Format
, тогда метод Convert
может выглядеть примерно так:
public static string Convert(string text, int sourceBase, int targetBase)
{
int number = Parse(text, sourceBase);
return Format(number, targetBase);
}
(Вы можете использовать string
для представления различных баз, если хотите, конечно. Если вам действительно нужна такая гибкость, я бы хотел создать новый класс для представления "числового представления" Вероятно, в этом классе должны быть Parse
, Format
и Convert
.)