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

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

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

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

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

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

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


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

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

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