Перевод из двоичного числа в десятичное без ведущих нулей - 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)));

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


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

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

10   голосов , оценка 3.6 из 5
Похожие ответы