Конвертация ToUint32 - C#
Формулировка задачи:
допустим, я хочу получить из текстбокса строчку и записать ее в значение Uint32
если строчка будет 12345, то все нормально. Но у меня текстовая строка вида HEX, т.е. может быть 123ABCD. Как правильно перегрузить этот метод, чтобы он понимал вид HEX?
k[0] = Convert.ToUInt32(textBoxKey1.Text);
Решение задачи: «Конвертация ToUint32»
textual
Листинг программы
static string bukv = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static void Main(string[] args)
{
string l = Console.ReadLine();
uint i = Convert.ToUInt32(FromN(l, "16"));
Console.WriteLine(i.ToString());
Console.ReadLine();
}
private static string FromN(string number, string sys)
{
int newNum = 0;
string temp = "";
int t;
int i;
for (i = 0; i < number.Length; i++)
{
temp = "";
temp += newCh(number.Substring(i, 1), "from");
t = (int)Math.Pow(Convert.ToDouble(sys), Convert.ToDouble(number.Length - (i + 1)));
newNum += Convert.ToInt32(temp) * t;
}
return newNum.ToString();
}
static string newCh(string sym, string otk)
{
string s = "";
if (otk == "to")
{
if (Convert.ToInt32(sym) > 10)
s += bukv.Substring(Convert.ToInt32(sym) - 10, 1);
else
s += sym;
}
else if (otk == "from")
{
if (bukv.IndexOf(sym) == -1)
s += sym;
else
s += (bukv.IndexOf(sym) + 10).ToString();
}
return s;
}