Перевод из двоичного числа в десятичное без ведущих нулей - C#

Узнай цену своей работы

Формулировка задачи:

Перевод двоичного числа в десятичное - не работает никак совсем. Прощу помощи, мб просто подсказать , что там не такю Знаю, что сейчас будут сообщения вроде "Ты поиском умеешь пользоватьсся?" и тд.

Заранее прошу прощения!

Решение задачи: «Перевод из двоичного числа в десятичное без ведущих нулей»

textual
Листинг программы
  1. //string s = new string('1', 60000);
  2. string s = "00001101";
  3.  
  4. s = s.TrimStart('0');
  5. int[] n = new int[(int)Math.Ceiling(s.Length / Math.Log(10, 2)) + 1];
  6. int p = 0;
  7.  
  8. for (int i = 0; i < s.Length; i++)
  9. {
  10.     // умножаем на 2;
  11.     for (int j = 0; j < n.Length; j++)
  12.         n[j] <<= 1;
  13.  
  14.     // прибавляем единицу
  15.     if (s[i] == '1') n[0]++;
  16.                
  17.     // нормализуем цифры
  18.     for (int j = 0; j <= p; j++)
  19.     {
  20.         n[j + 1] += n[j] / 10;
  21.         n[j] = n[j] % 10;
  22.     }
  23.  
  24.     if (n[p + 1] > 0) p++;
  25. }
  26.  
  27. Console.WriteLine(n.Take(p+1).Reverse().Aggregate(new StringBuilder(), (sb, x)=>sb.Append(x)));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы