Перевод из двоичного числа в десятичное без ведущих нулей - C#
Формулировка задачи:
Перевод двоичного числа в десятичное
- не работает никак совсем. Прощу помощи, мб просто подсказать , что там не такю
Знаю, что сейчас будут сообщения вроде "Ты поиском умеешь пользоватьсся?" и тд.
Заранее прошу прощения!
Решение задачи: «Перевод из двоичного числа в десятичное без ведущих нулей»
textual
Листинг программы
//string s = new string('1', 60000);
string s = "00001101";
s = s.TrimStart('0');
int[] n = new int[(int)Math.Ceiling(s.Length / Math.Log(10, 2)) + 1];
int p = 0;
for (int i = 0; i < s.Length; i++)
{
// умножаем на 2;
for (int j = 0; j < n.Length; j++)
n[j] <<= 1;
// прибавляем единицу
if (s[i] == '1') n[0]++;
// нормализуем цифры
for (int j = 0; j <= p; j++)
{
n[j + 1] += n[j] / 10;
n[j] = n[j] % 10;
}
if (n[p + 1] > 0) p++;
}
Console.WriteLine(n.Take(p+1).Reverse().Aggregate(new StringBuilder(), (sb, x)=>sb.Append(x)));