Перевод из 16-ричной в 2-ичную систему счисления - C#

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

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

Доброго времени суток. Помогите написать консольное приложение на с#. Перевод числа из 16-ричной сс в 2-ичную. Только вся проблема в том, что при решении нельзя использовать метод Convert. Надумал решение, берем число в 16 сс и пихаем его в массив, затем достаем каждый элемент сравниваем со значениями по готовой таблице перевода 16 в 2 сс и присваеваем каждому элементу массива свое значение. То есть если у нас число D7, '7' - присваеваем 0111 а 'D' - 1101. В теории все работает а на практике ни черта не получается. И как запихать в массив все элементы одной строкой? Не вводить каждый элемент по отдельности. Может у кого есть другие пути решения? Спасибо

Решение задачи: «Перевод из 16-ричной в 2-ичную систему счисления»

textual
Листинг программы
  1. var d = new Dictionary<string, string>(StringComparer.CurrentCultureIgnoreCase)
  2. {
  3.     { "0", "0000" },
  4.     { "1", "0001" },
  5.     { "2", "0010" },
  6.     { "3", "0011" },
  7.     { "4", "0100" },
  8.     { "5", "0101" },
  9.     { "6", "0110" },
  10.     { "7", "0111" },
  11.     { "8", "1000" },
  12.     { "9", "1001" },
  13.     { "a", "1010" },
  14.     { "b", "1011" },
  15.     { "c", "1100" },
  16.     { "d", "1101" },
  17.     { "e", "1110" },
  18.     { "f", "1111" }
  19. };
  20.  
  21. var number = "123AbC"; // Console.ReadLine()
  22. var digits = number.Select(c => d[c.ToString()]).SelectMany(c => c).SkipWhile(c => c == '0');
  23. var newNumber = string.Join("", digits);
  24. if (newNumber == "") newNumber = "0";
  25.  
  26. Console.WriteLine("{0}(16) = {1}(2)", number, newNumber);
  27. Console.ReadLine();

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


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

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

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

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

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

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