Перевод из двоичного числа в десятичное без ведущих нулей - 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)));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д