private const string CHAR = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static int BaseNTo10(int baseFrom, string value)
{
if (baseFrom < 2 || baseFrom > 36) return -1;
int v2 = 0;
int base10 = 0;
for (int i = value.Length - 1; i>-1; i--)
{
v2 = CHAR.IndexOf(value[i]);
if (v2 < 0 || v2 >= baseFrom) return -1;
for (int j = 1; j < value.Length - i; j++) v2 *= baseFrom;
base10 += v2;
}
return base10;
}
public static string Base10ToN(int baseTo, int value)
{
if (baseTo < 2 || baseTo > 36) return null;
System.Text.StringBuilder baseN = new System.Text.StringBuilder();
do
{
baseN.Insert(0, CHAR[value % baseTo]);
value = (int)(value / baseTo);
}
while (value > 0);
return baseN.ToString();
}