Доброе время суток !
Что то к вечеру лыжи не едут.
Надо перевести 10 число в 36 и обратно
int ch = 66;
string res = Convert.ToString(ch, 36);
Ошибка недопустимое основание ??? что не правильно??
Спасибо!
Здравствуйте, Аноним, Вы писали:
А>Надо перевести 10 число в 36 и обратно
А>А>int ch = 66;
А>string res = Convert.ToString(ch, 36);
А>
А>Ошибка недопустимое основание ??? что не правильно??
The base of the return value, which must be 2, 8, 10, or 16.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Аноним, Вы писали:
А>>Надо перевести 10 число в 36 и обратно
А>>А>>int ch = 66;
А>>string res = Convert.ToString(ch, 36);
А>>
А>>Ошибка недопустимое основание ??? что не правильно??
L>L>The base of the return value, which must be 2, 8, 10, or 16.
точно .
Короче напильник в руки или есть что то готовое ?
Здравствуйте, Аноним, Вы писали:
А>>>Надо перевести 10 число в 36 и обратно
L>>L>>The base of the return value, which must be 2, 8, 10, or 16.
А>точно .
А>Короче напильник в руки или есть что то готовое ?
для начала — понять, что этот код даже если бы и работал, то не помог бы в задаче "перевести 10 число в 36".
Здравствуйте, <Аноним>, Вы писали:
А>Доброе время суток !
А>Что то к вечеру лыжи не едут.
А>Надо перевести 10 число в 36 и обратно
А>А>int ch = 66;
А>string res = Convert.ToString(ch, 36);
А>
А>Ошибка недопустимое основание ??? что не правильно??
Console.WriteLine(res);
А что должно получиться?
... << RSDN@Home 1.2.0 alpha 5 rev. 1497>>
Здравствуйте, Аноним, Вы писали:
А>Надо перевести 10 число в 36 и обратно
На правах шутки
using System;
using System.Windows.Forms;
class Program
{
[STAThread]
static void Main()
{
var base36 = Convert(10000, 36);
Console.WriteLine(base36);
Console.WriteLine(Convert(base36, 10, 36));
}
static string Convert(int number, int toBase)
{
return Convert(number.ToString(), toBase);
}
static string Convert(string number, int toBase, int fromBase = 10)
{
using(var browser = new WebBrowser())
{
browser.Navigate(string.Empty);
browser.Document.InvokeScript(
"execScript",
new[] { "function convert(number, toBase, fromBase) { return parseInt(number, fromBase).toString(toBase); }" });
return (string) browser.Document.InvokeScript("convert", new object[] { number, toBase, fromBase });
}
}
}
Здравствуйте, Аноним, Вы писали:
Наверное кому-нибудь пригодится
Итог представления числа в другой системе счисления выглядит так
public class BaseConverter {
public static string ToBase(string number, int start_base, int target_base) {
int base10 = ToBase10(number, start_base);
string rtn = FromBase10(base10, target_base);
return rtn;
}
public static int ToBase10(string number, int start_base) {
if (start_base < 2 || start_base > 36) return 0;
if (start_base == 10) return Convert.ToInt32(number);
char[] chrs = number.ToCharArray();
int m = chrs.Length - 1;
int n = start_base;
int x;
int rtn = 0;
foreach(char c in chrs) {
if (char.IsNumber(c))
x = int.Parse(c.ToString());
else
x = Convert.ToInt32(c) - 55;
rtn += x * (Convert.ToInt32(Math.Pow(n, m)));
m--;
}
return rtn;
}
public static string FromBase10(int number, int target_base) {
if (target_base < 2 || target_base > 36) return "";
if (target_base == 10) return number.ToString();
int n = target_base;
int q = number;
int r;
string rtn = "";
while (q >= n) {
r = q % n;
q = q / n;
if (r < 10)
rtn = r.ToString() + rtn;
else
rtn = Convert.ToChar(r + 55).ToString() + rtn;
}
if (q < 10)
rtn = q.ToString() + rtn;
else
rtn = Convert.ToChar(q + 55).ToString() + rtn;
return rtn;
}
}